| | |
| | | public with sharing class NFM502Controller implements Queueable { |
| | | public String rowData_id; |
| | | //add staic sushanhu 20220302 start |
| | | public static String transUrl; |
| | | public static String transId; |
| | | public static String token; |
| | | public static List<String> sfRecordIds =new List<String>(); |
| | | //add staic sushanhu 20220302 end |
| | | public NFM502Controller(String rowData_id) { |
| | | this.rowData_id = rowData_id; |
| | | } |
| | | public String rowData_id; |
| | | //add staic sushanhu 20220302 start |
| | | public static String transUrl; |
| | | public static String transId; |
| | | public static String token; |
| | | public static List<String> sfRecordIds =new List<String>(); |
| | | //add staic sushanhu 20220302 end |
| | | public NFM502Controller(String rowData_id) { |
| | | this.rowData_id = rowData_id; |
| | | } |
| | | |
| | | public static Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); |
| | | public void execute(QueueableContext context) { |
| | | // 通过Rowdata.Id来检索日志中的内容(千里马数据等) |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, |
| | | Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, |
| | | Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c, |
| | | NFM501Future_Count__c, |
| | | NFM501_Web_Annex_Count__c |
| | | from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_id]; |
| | | //存放报错信息 |
| | | BatchIF_Log__c iflog502 = new BatchIF_Log__c(); |
| | | iflog502.Type__c = 'NFM501'; |
| | | iflog502.RowDataFlg__c = false; |
| | | iflog502.Log__c = ' '; |
| | | iflog502.ErrorLog__c = ' '; |
| | | iflog502.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | insert iflog502; |
| | | NFM502Controller.WebAnnexGain(rowData.Id, iflog502.Id, false); |
| | | } |
| | | @future(callout = true) |
| | | public static void WebAnnexGain(String rowData_id, String iflog502_id, boolean Manual_execution502) { |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, |
| | | Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, |
| | | Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c, |
| | | NFM501Future_Count__c, |
| | | NFM501_Web_Annex_Count__c from BatchIF_Log__c |
| | | where RowDataFlg__c = true and Id = :rowData_id]; |
| | | BatchIF_Log__c iflog502 = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, |
| | | Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, |
| | | Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c, |
| | | NFM501Future_Count__c, |
| | | NFM501_Web_Annex_Count__c from BatchIF_Log__c |
| | | where Id = :iflog502_id]; |
| | | public static Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); |
| | | public void execute(QueueableContext context) { |
| | | // 通过Rowdata.Id来检索日志中的内容(千里马数据等) |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, |
| | | Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, |
| | | Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c, |
| | | NFM501Future_Count__c, |
| | | NFM501_Web_Annex_Count__c |
| | | from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_id]; |
| | | //存放报错信息 |
| | | BatchIF_Log__c iflog502 = new BatchIF_Log__c(); |
| | | iflog502.Type__c = 'NFM501'; |
| | | iflog502.RowDataFlg__c = false; |
| | | iflog502.Log__c = ' '; |
| | | iflog502.ErrorLog__c = ' '; |
| | | iflog502.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | insert iflog502; |
| | | NFM502Controller.WebAnnexGain(rowData.Id, iflog502.Id, false); |
| | | } |
| | | @future(callout = true) |
| | | public static void WebAnnexGain(String rowData_id, String iflog502_id, boolean Manual_execution502) { |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, |
| | | Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, |
| | | Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c, |
| | | NFM501Future_Count__c, |
| | | NFM501_Web_Annex_Count__c from BatchIF_Log__c |
| | | where RowDataFlg__c = true and Id = :rowData_id]; |
| | | BatchIF_Log__c iflog502 = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, |
| | | Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, |
| | | Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c, |
| | | NFM501Future_Count__c, |
| | | NFM501_Web_Annex_Count__c from BatchIF_Log__c |
| | | where Id = :iflog502_id]; |
| | | |
| | | iflog502.Log__c = iflog502.Log__c == null ? '' : iflog502.Log__c; |
| | | iflog502.ErrorLog__c = iflog502.ErrorLog__c == null ? '' : iflog502.ErrorLog__c; |
| | | rowData.Log__c = rowData.Log__c == null ? '' : rowData.Log__c; |
| | | rowData.ErrorLog__c = rowData.ErrorLog__c == null ? '' : rowData.ErrorLog__c; |
| | | iflog502.Log__c = iflog502.Log__c == null ? '' : iflog502.Log__c; |
| | | iflog502.ErrorLog__c = iflog502.ErrorLog__c == null ? '' : iflog502.ErrorLog__c; |
| | | rowData.Log__c = rowData.Log__c == null ? '' : rowData.Log__c; |
| | | rowData.ErrorLog__c = rowData.ErrorLog__c == null ? '' : rowData.ErrorLog__c; |
| | | |
| | | // Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | //update 同staic 20220302 satrt |
| | | // String token; |
| | | //update 同staic 20220302 end |
| | | Datetime oldTime; |
| | | // 从转换表中获取token |
| | | BatchIF_Transfer__c token502 = [Select ID, NFM501_Token__c |
| | | FROM BatchIF_Transfer__c Where Table__c = 'NFM501Token']; |
| | | token = token502.NFM501_Token__c; |
| | | // 从转换表中获取获取完token的时间 |
| | | BatchIF_Transfer__c oldTime502 = [Select ID, NFM501_Gain_End_Time__c |
| | | FROM BatchIF_Transfer__c Where Table__c = 'NFM501GainEndTime']; |
| | | oldTime = oldTime502.NFM501_Gain_End_Time__c; |
| | | // 对日志中的数据进行解析 |
| | | String WebUrl = NFMUtil.QLMgetRowDataStr(rowData); |
| | | NFM501Controller.AllData getQLMData502 = (NFM501Controller.AllData) |
| | | JSON.deserialize(WebUrl, NFM501Controller.AllData.class); |
| | | if (getQLMData502 == null) { |
| | | return; |
| | | } |
| | | // Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | //update 同staic 20220302 satrt |
| | | // String token; |
| | | //update 同staic 20220302 end |
| | | Datetime oldTime; |
| | | // 从转换表中获取token |
| | | BatchIF_Transfer__c token502 = [Select ID, NFM501_Token__c |
| | | FROM BatchIF_Transfer__c Where Table__c = 'NFM501Token']; |
| | | token = token502.NFM501_Token__c; |
| | | // 从转换表中获取获取完token的时间 |
| | | BatchIF_Transfer__c oldTime502 = [Select ID, NFM501_Gain_End_Time__c |
| | | FROM BatchIF_Transfer__c Where Table__c = 'NFM501GainEndTime']; |
| | | oldTime = oldTime502.NFM501_Gain_End_Time__c; |
| | | // 对日志中的数据进行解析 |
| | | String WebUrl = NFMUtil.QLMgetRowDataStr(rowData); |
| | | NFM501Controller.AllData getQLMData502 = (NFM501Controller.AllData) |
| | | JSON.deserialize(WebUrl, NFM501Controller.AllData.class); |
| | | if (getQLMData502 == null) { |
| | | return; |
| | | } |
| | | |
| | | // 判断token是否失效(失效条件为30分钟之后),如果失效,重新获取 |
| | | Long timeslot; |
| | | Datetime newTime = System.now(); |
| | | if (oldTime == null) { |
| | | timeslot = 2800000; |
| | | } else { |
| | | // 当前时间与获取token结束时间的时间差 |
| | | timeslot = newTime.getTime() - oldTime.getTime(); |
| | | } |
| | | // System.debug('++++1++++' + token + ' : ' + timeslot); |
| | | if (string.isblank(token) || timeslot > 1800000) { |
| | | // NFMUtil.response response = NFMUtil.receiveToken(); |
| | | //update to aws token sushanhu 20220301 start |
| | | NFMUtil.response response = NFMUtil.getAWSToken(); |
| | | //判断rowdata中数据获取成功与否,如果失败重发三次,如果大于三次则手动操作 |
| | | if (String.isBlank(response.responseBody)) { |
| | | System.debug('response.responseBody:' + response.responseBody); |
| | | iflog502.ErrorLog__c = '502token:' + response.responseBody; |
| | | // rowData.NFM501_Web_Annex_Count__c = 0; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | } |
| | | //更新日志数据 |
| | | System.debug('123@@@'); |
| | | return; |
| | | } |
| | | token = response.responseBody; |
| | | oldTime = Datetime.now(); |
| | | token502.NFM501_Token__c = token; |
| | | oldTime502.NFM501_Gain_End_Time__c = oldTime; |
| | | //update to aws token sushanhu 20220301 end |
| | | } |
| | | // 判断token是否失效(失效条件为30分钟之后),如果失效,重新获取 |
| | | Long timeslot; |
| | | Datetime newTime = System.now(); |
| | | if (oldTime == null) { |
| | | timeslot = 2800000; |
| | | } else { |
| | | // 当前时间与获取token结束时间的时间差 |
| | | timeslot = newTime.getTime() - oldTime.getTime(); |
| | | } |
| | | // System.debug('++++1++++' + token + ' : ' + timeslot); |
| | | if (string.isblank(token) || timeslot > 1800000) { |
| | | // NFMUtil.response response = NFMUtil.receiveToken(); |
| | | //update to aws token sushanhu 20220301 start |
| | | NFMUtil.response response = NFMUtil.getAWSToken(); |
| | | //判断rowdata中数据获取成功与否,如果失败重发三次,如果大于三次则手动操作 |
| | | if (String.isBlank(response.responseBody)) { |
| | | System.debug('response.responseBody:' + response.responseBody); |
| | | iflog502.ErrorLog__c = '502token:' + response.responseBody; |
| | | // rowData.NFM501_Web_Annex_Count__c = 0; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | } |
| | | //更新日志数据 |
| | | System.debug('123@@@'); |
| | | return; |
| | | } |
| | | token = response.responseBody; |
| | | oldTime = Datetime.now(); |
| | | token502.NFM501_Token__c = token; |
| | | oldTime502.NFM501_Gain_End_Time__c = oldTime; |
| | | //update to aws token sushanhu 20220301 end |
| | | } |
| | | |
| | | //关联附件与招投标项目(通过Id) |
| | | //1.读出招投标中的唯一标识(projecId),将全部招投标projectId存入ProjectIdList |
| | | List<String> ProjectIdList = new List<String>(); |
| | | for (NFM501Controller.ListItem ProId : getQLMData502.data.list1) { |
| | | ProjectIdList.add(ProId.projectId); |
| | | } |
| | | System.debug('---===ProjectIdList' + ProjectIdList); |
| | | //2.取其对应的 |
| | | List<Tender_information__c> TIList = |
| | | [Select Id, ProjectId__c, InfoType__c |
| | | FROM Tender_information__c |
| | | Where ProjectId__c in :ProjectIdList]; |
| | | System.debug('---===2345TIList' + TIList); |
| | | Set<Id> TenIdSet = new Set<Id>(); |
| | | //关联附件与招投标项目(通过Id) |
| | | //1.读出招投标中的唯一标识(projecId),将全部招投标projectId存入ProjectIdList |
| | | List<String> ProjectIdList = new List<String>(); |
| | | for (NFM501Controller.ListItem ProId : getQLMData502.data.list1) { |
| | | ProjectIdList.add(ProId.projectId); |
| | | } |
| | | System.debug('---===ProjectIdList' + ProjectIdList); |
| | | //2.取其对应的 |
| | | List<Tender_information__c> TIList = |
| | | [Select Id, ProjectId__c, InfoType__c |
| | | FROM Tender_information__c |
| | | Where ProjectId__c in :ProjectIdList]; |
| | | System.debug('---===2345TIList' + TIList); |
| | | Set<Id> TenIdSet = new Set<Id>(); |
| | | |
| | | Map<String, Tender_information__c> TenMap = new Map<String, Tender_information__c>(); |
| | | for (Tender_information__c Ten : TIList) { |
| | | TenMap.put(Ten.ProjectId__c, Ten); |
| | | TenIdSet.add(Ten.Id); |
| | | } |
| | | Map<String, Tender_information__c> TenMap = new Map<String, Tender_information__c>(); |
| | | for (Tender_information__c Ten : TIList) { |
| | | TenMap.put(Ten.ProjectId__c, Ten); |
| | | TenIdSet.add(Ten.Id); |
| | | } |
| | | |
| | | //循环URL |
| | | // List<Attachment> TenAttList = new List<Attachment>(); |
| | | //update to aws pi sushanhu 20220301 start |
| | | List<FileAddress__c> fileList = new List<FileAddress__c>(); |
| | | List<String> queryUrlList = new List<String>(); |
| | | Map<String, NFM501Controller.ListItem> queryMap = new Map<String, NFM501Controller.ListItem>(); |
| | | //update to aws pi sushanhu 20220301 end |
| | | for (NFM501Controller.ListItem QLMWebAtt : getQLMData502.data.list1) { |
| | | if (QLMWebAtt.projectId == null) { |
| | | iflog502.ErrorLog__c += 'Error! [' + QLMWebAtt.projectId + ']NotExist. This information is skipped.\n'; |
| | | continue; |
| | | } |
| | | if (QLMWebAtt.areaProvince.equals('香港特别行政区') |
| | | || QLMWebAtt.areaProvince.equals('澳门特别行政区') |
| | | || QLMWebAtt.areaProvince.equals('台湾省')) { |
| | | iflog502.ErrorLog__c += 'Error! [' + QLMWebAtt.areaProvince + |
| | | ']Is 香港特别行政区(澳门特别行政区,台湾省). This information is skipped.\n'; |
| | | continue; |
| | | } |
| | | //update to aws pi sushanhu 20220301 start |
| | | queryUrlList.add(QLMWebAtt.infoQianlimaUrl); |
| | | queryMap.put(QLMWebAtt.infoQianlimaUrl,QLMWebAtt); |
| | | //update to aws pi sushanhu 20220301 start |
| | | // //调用接口3 |
| | | // NFMUtil.response response = NFMUtil.getQLMData(NFMUtil.NFM502_ENDPOINT + QLMWebAtt.infoQianlimaUrl, token); |
| | | // if (String.isBlank(response.responseBody)) { |
| | | // System.debug('response.responseBody:' + response.responseBody); |
| | | // iflog502.ErrorLog__c = '502接口调用:' + response.status; |
| | | // rowData.NFM501_Web_Annex_Count__c = 0; |
| | | // if (!Manual_execution502) { |
| | | // NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | // } |
| | | // //更新日志数据 |
| | | // update token502; |
| | | // update oldTime502; |
| | | // return; |
| | | // } |
| | | //循环URL |
| | | // List<Attachment> TenAttList = new List<Attachment>(); |
| | | //update to aws pi sushanhu 20220301 start |
| | | List<FileAddress__c> fileList = new List<FileAddress__c>(); |
| | | List<String> queryUrlList = new List<String>(); |
| | | Map<String, NFM501Controller.ListItem> queryMap = new Map<String, NFM501Controller.ListItem>(); |
| | | //update to aws pi sushanhu 20220301 end |
| | | for (NFM501Controller.ListItem QLMWebAtt : getQLMData502.data.list1) { |
| | | if (QLMWebAtt.projectId == null) { |
| | | iflog502.ErrorLog__c += 'Error! [' + QLMWebAtt.projectId + ']NotExist. This information is skipped.\n'; |
| | | continue; |
| | | } |
| | | if (QLMWebAtt.areaProvince.equals('香港特别行政区') |
| | | || QLMWebAtt.areaProvince.equals('澳门特别行政区') |
| | | || QLMWebAtt.areaProvince.equals('台湾省')) { |
| | | iflog502.ErrorLog__c += 'Error! [' + QLMWebAtt.areaProvince + |
| | | ']Is 香港特别行政区(澳门特别行政区,台湾省). This information is skipped.\n'; |
| | | continue; |
| | | } |
| | | //update to aws pi sushanhu 20220301 start |
| | | queryUrlList.add(QLMWebAtt.infoQianlimaUrl); |
| | | queryMap.put(QLMWebAtt.infoQianlimaUrl,QLMWebAtt); |
| | | //update to aws pi sushanhu 20220301 start |
| | | // //调用接口3 |
| | | // NFMUtil.response response = NFMUtil.getQLMData(NFMUtil.NFM502_ENDPOINT + QLMWebAtt.infoQianlimaUrl, token); |
| | | // if (String.isBlank(response.responseBody)) { |
| | | // System.debug('response.responseBody:' + response.responseBody); |
| | | // iflog502.ErrorLog__c = '502接口调用:' + response.status; |
| | | // rowData.NFM501_Web_Annex_Count__c = 0; |
| | | // if (!Manual_execution502) { |
| | | // NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | // } |
| | | // //更新日志数据 |
| | | // update token502; |
| | | // update oldTime502; |
| | | // return; |
| | | // } |
| | | |
| | | // //解析后的code报错处理 |
| | | // string NFM502responseBody = response.responseBody; |
| | | // Map<String, Object> Body502 = (Map<String, Object>) JSON.deserializeUntyped(NFM502responseBody); |
| | | // if (!Body502.get('code').equals('0')) { |
| | | // System.debug('-------9-------'); |
| | | // iflog502.ErrorLog__c = '502解析:' + Body502.get('msg').tostring() ; |
| | | // if (!Manual_execution502) { |
| | | // NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | // } |
| | | // update token502; |
| | | // update oldTime502; |
| | | // return; |
| | | // } |
| | | // System.debug('Body502.data:' + Body502.get('data').tostring() + '---------' |
| | | // + Body502.get('msg').tostring() + '-------' + Body502.get('code').tostring()); |
| | | // //解析后的code报错处理 |
| | | // string NFM502responseBody = response.responseBody; |
| | | // Map<String, Object> Body502 = (Map<String, Object>) JSON.deserializeUntyped(NFM502responseBody); |
| | | // if (!Body502.get('code').equals('0')) { |
| | | // System.debug('-------9-------'); |
| | | // iflog502.ErrorLog__c = '502解析:' + Body502.get('msg').tostring() ; |
| | | // if (!Manual_execution502) { |
| | | // NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | // } |
| | | // update token502; |
| | | // update oldTime502; |
| | | // return; |
| | | // } |
| | | // System.debug('Body502.data:' + Body502.get('data').tostring() + '---------' |
| | | // + Body502.get('msg').tostring() + '-------' + Body502.get('code').tostring()); |
| | | |
| | | // //获取网页信息转存为附件 |
| | | // //截切数据(使数据成为解析的格式) |
| | | // Integer start = NFM502responseBody.indexOf('"infoHtml":"'); |
| | | // Integer theEnd = NFM502responseBody.lastIndexOf('"},"msg'); |
| | | // NFM502responseBody = NFM502responseBody.substring(start + 12, theEnd); |
| | | // //将其转换为附件 |
| | | // // System.debug('---------' + NFM502responseBody); |
| | | // Attachment WebAtt = new Attachment(); |
| | | // // System.debug('projectId:' + QLMWebAtt.projectId); |
| | | // if (TenMap.containskey(QLMWebAtt.projectId)) { |
| | | // WebAtt.ParentId = TenMap.get(QLMWebAtt.projectId).Id; |
| | | // WebAtt.Body = Blob.valueOf(NFM502responseBody); |
| | | // WebAtt.Name = TenMap.get(QLMWebAtt.projectId).InfoType__c + ':' + QLMWebAtt.infoTitle + '.html'; |
| | | // TenAttList.add(WebAtt); |
| | | // } |
| | | } |
| | | //update to aws pi sushanhu 20220301 start |
| | | PIHelper.piIntegration pi =PIHelper.getPIIntegrationInfo('NFM502'); |
| | | transUrl=pi.searchUrl; |
| | | //调用接口3 |
| | | system.debug('Payload for NFM 520:'+JSON.serialize(queryUrlList)); |
| | | NFMUtil.response response = NFMUtil.getAWSQLMData(pi.newUrl ,JSON.serialize(queryUrlList), token); |
| | | Map<String, Object> result = (Map<String, Object>)JSON.deserializeUntyped(response.responseBody); |
| | | String statusCode =(String)result.get('status'); |
| | | transId =(String)result.get('txId'); |
| | | if (!'0'.equals(statusCode)) { |
| | | System.debug('response.responseBody:' + response.responseBody); |
| | | iflog502.ErrorLog__c = '502接口调用:' + (String)result.get('message'); |
| | | rowData.NFM501_Web_Annex_Count__c = 0; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | } |
| | | //更新日志数据 |
| | | update token502; |
| | | update oldTime502; |
| | | return; |
| | | } |
| | | // //获取网页信息转存为附件 |
| | | // //截切数据(使数据成为解析的格式) |
| | | // Integer start = NFM502responseBody.indexOf('"infoHtml":"'); |
| | | // Integer theEnd = NFM502responseBody.lastIndexOf('"},"msg'); |
| | | // NFM502responseBody = NFM502responseBody.substring(start + 12, theEnd); |
| | | // //将其转换为附件 |
| | | // // System.debug('---------' + NFM502responseBody); |
| | | // Attachment WebAtt = new Attachment(); |
| | | // // System.debug('projectId:' + QLMWebAtt.projectId); |
| | | // if (TenMap.containskey(QLMWebAtt.projectId)) { |
| | | // WebAtt.ParentId = TenMap.get(QLMWebAtt.projectId).Id; |
| | | // WebAtt.Body = Blob.valueOf(NFM502responseBody); |
| | | // WebAtt.Name = TenMap.get(QLMWebAtt.projectId).InfoType__c + ':' + QLMWebAtt.infoTitle + '.html'; |
| | | // TenAttList.add(WebAtt); |
| | | // } |
| | | } |
| | | //update to aws pi sushanhu 20220301 start |
| | | PIHelper.piIntegration pi =PIHelper.getPIIntegrationInfo('NFM502'); |
| | | transUrl=pi.searchUrl; |
| | | //调用接口3 |
| | | system.debug('Payload for NFM 520:'+JSON.serialize(queryUrlList)); |
| | | NFMUtil.response response = NFMUtil.getAWSQLMData(pi.newUrl ,JSON.serialize(queryUrlList), token); |
| | | Map<String, Object> result = (Map<String, Object>)JSON.deserializeUntyped(response.responseBody); |
| | | String statusCode =(String)result.get('status'); |
| | | transId =(String)result.get('txId'); |
| | | if (!'0'.equals(statusCode)) { |
| | | System.debug('response.responseBody:' + response.responseBody); |
| | | iflog502.ErrorLog__c = '502接口调用:' + (String)result.get('message'); |
| | | rowData.NFM501_Web_Annex_Count__c = 0; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | } |
| | | //更新日志数据 |
| | | update token502; |
| | | update oldTime502; |
| | | return; |
| | | } |
| | | |
| | | //解析后的code报错处理 |
| | | string NFM502responseBody = response.responseBody; |
| | | Map<String, Object> Body502 = (Map<String, Object>) JSON.deserializeUntyped(NFM502responseBody); |
| | | if (!String.valueOf(Body502.get('status')).equals('0')) { |
| | | System.debug('-------9-------'); |
| | | iflog502.ErrorLog__c = '502解析:' + Body502.get('message').tostring() ; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | } |
| | | update token502; |
| | | update oldTime502; |
| | | return; |
| | | } |
| | | System.debug('Body502.data:' + Body502.get('object').tostring() + '---------' |
| | | + Body502.get('message').tostring() + '-------' + Body502.get('status').tostring()); |
| | | //解析后的code报错处理 |
| | | string NFM502responseBody = response.responseBody; |
| | | Map<String, Object> Body502 = (Map<String, Object>) JSON.deserializeUntyped(NFM502responseBody); |
| | | if (!String.valueOf(Body502.get('status')).equals('0')) { |
| | | System.debug('-------9-------'); |
| | | iflog502.ErrorLog__c = '502解析:' + Body502.get('message').tostring() ; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData); |
| | | } |
| | | update token502; |
| | | update oldTime502; |
| | | return; |
| | | } |
| | | System.debug('Body502.data:' + Body502.get('object').tostring() + '---------' |
| | | + Body502.get('message').tostring() + '-------' + Body502.get('status').tostring()); |
| | | |
| | | //获取aws返回的地址并存储 |
| | | |
| | | Map<String, Object> fileMap = (Map<String, Object >)result.get('object'); |
| | | for(String url:queryUrlList){ |
| | | NFM501Controller.ListItem QLMWebAtt = queryMap.get(url); |
| | | if (TenMap.containskey(QLMWebAtt.projectId)) { |
| | | FileAddress__c file =new FileAddress__c(); |
| | | file.ParentRecordId__c = TenMap.get(QLMWebAtt.projectId).Id; |
| | | file.FileName__c = TenMap.get(QLMWebAtt.projectId).InfoType__c + ':' + QLMWebAtt.infoTitle + '.html'; |
| | | file.DownloadLink__c =pi.undeleteUrl+(String)fileMap.get(url)+'&fileName='+file.FileName__c; |
| | | file.ViewLink__c = pi.queryUrl+(String)fileMap.get(url) ; |
| | | file.AWS_File_Key__c =(String)fileMap.get(url) ; |
| | | fileList.add(file); |
| | | } |
| | | } |
| | | |
| | | //删除同名的附件 |
| | | List<String> UrlList = new List<String>(); |
| | | for (NFM501Controller.ListItem UrlName : getQLMData502.data.list1) { |
| | | if (TenMap.containskey(UrlName.projectId)) { |
| | | UrlList.add(TenMap.get(UrlName.projectId).InfoType__c + ':' + UrlName.infoTitle + '.html'); |
| | | } |
| | | } |
| | | //获取aws返回的地址并存储 |
| | | |
| | | Map<String, Object> fileMap = (Map<String, Object >)result.get('object'); |
| | | for(String url:queryUrlList){ |
| | | NFM501Controller.ListItem QLMWebAtt = queryMap.get(url); |
| | | if (TenMap.containskey(QLMWebAtt.projectId)) { |
| | | FileAddress__c file =new FileAddress__c(); |
| | | file.ParentRecordId__c = TenMap.get(QLMWebAtt.projectId).Id; |
| | | file.FileName__c = TenMap.get(QLMWebAtt.projectId).InfoType__c + ':' + QLMWebAtt.infoTitle + '.html'; |
| | | file.DownloadLink__c =pi.undeleteUrl+(String)fileMap.get(url)+'&fileName='+file.FileName__c; |
| | | file.ViewLink__c = pi.queryUrl+(String)fileMap.get(url) ; |
| | | file.AWS_File_Key__c =(String)fileMap.get(url) ; |
| | | fileList.add(file); |
| | | } |
| | | } |
| | | |
| | | //删除同名的附件 |
| | | List<String> UrlList = new List<String>(); |
| | | for (NFM501Controller.ListItem UrlName : getQLMData502.data.list1) { |
| | | if (TenMap.containskey(UrlName.projectId)) { |
| | | UrlList.add(TenMap.get(UrlName.projectId).InfoType__c + ':' + UrlName.infoTitle + '.html'); |
| | | } |
| | | } |
| | | |
| | | List<FileAddress__c> DeleFileList = [select id, FileName__c, ParentRecordId__c from FileAddress__c |
| | | where FileName__c in :UrlList and ParentRecordId__c in :TenIdSet]; |
| | | if (DeleFileList.size() > 0) { |
| | | delete DeleFileList; |
| | | } |
| | | System.debug('----1----' + fileList); |
| | | if (fileList.size() > 0) { |
| | | upsert fileList; |
| | | } |
| | | //确认事务 |
| | | |
| | | for (FileAddress__c file : fileList) { |
| | | system.debug('file--'+json.serialize(file)); |
| | | system.debug('file.id'+file.Id); |
| | | sfRecordIds.add(file.Id); |
| | | } |
| | | //update to aws pi sushanhu 20220301 end |
| | | // PIHelper.confirmFileTrans('NFM502',1,JSON.serialize(sfRecordIds),transId,token,transUrl); |
| | | PIHelper.insertConfirmTrans('NFM502',1,JSON.serialize(sfRecordIds),transId,0,transUrl,null); |
| | | // if (!confirm) { |
| | | // //回滚 |
| | | // } |
| | | rowData.NFM501_Web_Annex_Count__c = 0; |
| | | } catch (Exception ex) { |
| | | // Database.rollback(sp); |
| | | // System.debug(Logginglevel.ERROR, 'QLMData_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | // System.debug(Logginglevel.ERROR, 'QLMData_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | // logstr += '\n' + ex.getMessage(); |
| | | //add 事务确认 sushanhu 20220302 satrt |
| | | // PIHelper.confirmFileTrans('NFM502',0,'',transId,token,transUrl); |
| | | PIHelper.insertConfirmTrans('NFM502',0,JSON.serialize(sfRecordIds),transId,0,transUrl,null); |
| | | //add 事务确认 sushanhu 20220302 end |
| | | iflog502.ErrorLog__c = '502抛出异常:' + ex.getMessage() + '\n' |
| | | + ex.getStackTraceString() + '\n' + iflog502.ErrorLog__c; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendExceptionRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData, |
| | | '502抛出异常:' + ex.getMessage() + '\n' + ex.getStackTraceString() |
| | | + '\n' + rowData.ErrorLog__c + |
| | | '错误次数已经超过自动收信设定的最大次数,请手动收信'); |
| | | } |
| | | } |
| | | update rowData; |
| | | System.debug('+++++++5+++++++' + rowData); |
| | | System.debug('+++++++3+++++++' + iflog502.Log__c); |
| | | System.debug('+++++++2+++++++' + iflog502.ErrorLog__c); |
| | | //如果存入信息超出限制,用省略号代替 |
| | | if (iflog502.Log__c.length() > 131072) { |
| | | iflog502.Log__c = iflog502.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog502.ErrorLog__c.length() > 32768) { |
| | | iflog502.ErrorLog__c = iflog502.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | upsert iflog502; |
| | | } |
| | | public static void test() { |
| | | 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++; |
| | | List<FileAddress__c> DeleFileList = [select id, FileName__c, ParentRecordId__c from FileAddress__c |
| | | where FileName__c in :UrlList and ParentRecordId__c in :TenIdSet]; |
| | | if (DeleFileList.size() > 0) { |
| | | delete DeleFileList; |
| | | } |
| | | System.debug('----1----' + fileList); |
| | | if (fileList.size() > 0) { |
| | | upsert fileList; |
| | | } |
| | | //确认事务 |
| | | |
| | | for (FileAddress__c file : fileList) { |
| | | system.debug('file--'+json.serialize(file)); |
| | | system.debug('file.id'+file.Id); |
| | | sfRecordIds.add(file.Id); |
| | | } |
| | | //update to aws pi sushanhu 20220301 end |
| | | // PIHelper.confirmFileTrans('NFM502',1,JSON.serialize(sfRecordIds),transId,token,transUrl); |
| | | if (fileList.size() > 0) { |
| | | PIHelper.insertConfirmTrans('NFM502',1,JSON.serialize(sfRecordIds),transId,0,transUrl,null); |
| | | }else{ |
| | | PIHelper.insertConfirmTrans('NFM502',0,JSON.serialize(sfRecordIds),transId,0,transUrl,null); |
| | | } |
| | | |
| | | } |
| | | |
| | | // if (!confirm) { |
| | | // //回滚 |
| | | // } |
| | | rowData.NFM501_Web_Annex_Count__c = 0; |
| | | } catch (Exception ex) { |
| | | // Database.rollback(sp); |
| | | // System.debug(Logginglevel.ERROR, 'QLMData_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | // System.debug(Logginglevel.ERROR, 'QLMData_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | // logstr += '\n' + ex.getMessage(); |
| | | //add 事务确认 sushanhu 20220302 satrt |
| | | // PIHelper.confirmFileTrans('NFM502',0,'',transId,token,transUrl); |
| | | PIHelper.insertConfirmTrans('NFM502',0,JSON.serialize(sfRecordIds),transId,0,transUrl,null); |
| | | //add 事务确认 sushanhu 20220302 end |
| | | iflog502.ErrorLog__c = '502抛出异常:' + ex.getMessage() + '\n' |
| | | + ex.getStackTraceString() + '\n' + iflog502.ErrorLog__c; |
| | | if (!Manual_execution502) { |
| | | NFM501Controller.againSendExceptionRequest(iflog502, 'NFM501_Web_Annex_Count__c', rowData, |
| | | '502抛出异常:' + ex.getMessage() + '\n' + ex.getStackTraceString() |
| | | + '\n' + rowData.ErrorLog__c + |
| | | '错误次数已经超过自动收信设定的最大次数,请手动收信'); |
| | | } |
| | | } |
| | | update rowData; |
| | | System.debug('+++++++5+++++++' + rowData); |
| | | System.debug('+++++++3+++++++' + iflog502.Log__c); |
| | | System.debug('+++++++2+++++++' + iflog502.ErrorLog__c); |
| | | //如果存入信息超出限制,用省略号代替 |
| | | if (iflog502.Log__c.length() > 131072) { |
| | | iflog502.Log__c = iflog502.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog502.ErrorLog__c.length() > 32768) { |
| | | iflog502.ErrorLog__c = iflog502.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | upsert iflog502; |
| | | } |
| | | public static void test() { |
| | | 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++; |
| | | |
| | | } |
| | | } |