From 3b43925ca3211c861a2818a089907d34b5480aa5 Mon Sep 17 00:00:00 2001
From: 张宇恒 <bxyun0@163.com>
Date: 星期五, 06 五月 2022 10:41:15 +0800
Subject: [PATCH] 批量数据拆分处理
---
force-app/main/default/classes/NFM603Controller.cls | 86 +++++++++++++++++++++++++++++++++++++++++-
force-app/main/default/classes/NFM603ControllerTest.cls | 8 ++++
2 files changed, 91 insertions(+), 3 deletions(-)
diff --git a/force-app/main/default/classes/NFM603Controller.cls b/force-app/main/default/classes/NFM603Controller.cls
index d819d9c..a94ba2a 100644
--- a/force-app/main/default/classes/NFM603Controller.cls
+++ b/force-app/main/default/classes/NFM603Controller.cls
@@ -4,6 +4,11 @@
// private static final String API = '/admin/api/scd/save';
private static final String API = '/admin/api/repair/save';
+ // 2022-05-05 zyh update start
+ private static List < BatchIF_Log__c > logList = new List < BatchIF_Log__c > ();
+ private static List < BatchIF_Log__c > rowList = new List < BatchIF_Log__c > ();
+ private static Map < Id,BatchIF_Log__c > logMap = new Map < Id,BatchIF_Log__c > ();
+ // 2022-05-05 zyh update end
public static Integer status;
public static String message;
public class RepairOrderInfo {
@@ -140,6 +145,7 @@
iflog.MessageGroupNumber__c = nowStr;
}
List < RepairOrderInfo > repairs = new List < RepairOrderInfo > ();
+ List < RepairOrderInfo > repairs1 = new List < RepairOrderInfo > ();
BatchIF_Log__c rowData = null;
List < Repair__c > repairList = new List < Repair__c > ();
if (repairOrderIdList != null && repairOrderIdList.size() > 0) {
@@ -419,8 +425,20 @@
}
logstr += '\nend';
if (repairs.size() > 0) {
- rowData = NFMUtil.makeRowData(iflog, LOG_TYPE, repairs);
- execute(rowData, iflog);
+ // 2022-05-05 zyh update start
+ for (RepairOrderInfo roi : repairs ) {
+ repairs1.add(roi);
+ rowData = NFMUtil.makeRowData(iflog, LOG_TYPE, repairs1);
+ execute1(rowData, iflog);
+ // rowData = NFMUtil.makeRowData(iflog, LOG_TYPE, repairs);
+ // execute(rowData, iflog);
+ repairs1 = new List < RepairOrderInfo > ();
+ }
+ upsert logList;
+ upsert rowList;
+ delete logMap.values();
+ // 2022-05-05 zyh update end
+ // upsert rowData;
}
} catch (Exception e) {
// 鍙戠敓閿欒鏃�
@@ -502,9 +520,65 @@
iflog.Log__c = logstr;
upsert iflog;
upsert rowDataSFDC;
+ // logList.add(iflog);
+ // rowList.add(rowDataSFDC);
+
+ }
+ // 2022-05-05 zyh update start
+ public static void execute1(BatchIF_Log__c rowDataSFDC, BatchIF_Log__c iflog) {
+ Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt);
+
+ String logstr = rowDataSFDC.MessageGroupNumber__c + ' start\n';
+ if (iflog == null) {
+ iflog = new BatchIF_Log__c();
+ iflog.Type__c = LOG_TYPE;
+ iflog.MessageGroupNumber__c = rowDataSFDC.MessageGroupNumber__c;
+ iflog.Log__c = logstr;
+ iflog.ErrorLog__c = '';
+
+ } else {
+ // iflog.Type__c = LOG_TYPE;
+ // iflog.MessageGroupNumber__c = rowDataSFDC.MessageGroupNumber__c;
+ // logstr = iflog.Log__c;
+ logMap.put(iflog.Id, iflog);
+ iflog = new BatchIF_Log__c();
+ iflog.Type__c = LOG_TYPE;
+ iflog.MessageGroupNumber__c = rowDataSFDC.MessageGroupNumber__c;
+ iflog.Log__c = logstr;
+ iflog.ErrorLog__c = '';
+ }
+
+ try {
+ String data = NFMUtil.getRowDataStr(rowDataSFDC);
+ String status = NFMUtil.sendToAWS(data, API);
+ System.debug('NFM603Log--status->' + status);
+
+ if ('OK'.equals(status)) {
+ logstr += status + '\n';
+ rowDataSFDC.retry_cnt__c = 0;
+ } else {
+ rowDataSFDC = NFMUtil.LogAutoSend(rowDataSFDC, null, status);
+ }
+
+ } catch (Exception ex) {
+ // TODO IOException
+ // 閿欒鍙戠敓鏃�
+ logstr += ex.getMessage();
+ iflog.ErrorLog__c += ex.getMessage() + '\n';
+ iflog.ErrorLog__c += ex.getStackTraceString() + '\n';
+ if(!Test.isRunningTest()){
+ rowDataSFDC = NFMUtil.LogAutoSend(rowDataSFDC, ex, null);
+ }
+ }
+ iflog.Log__c = logstr;
+ // upsert iflog;
+ // upsert rowDataSFDC;
+ logList.add(iflog);
+ rowList.add(rowDataSFDC);
}
+ // 2022-05-05 zyh update end
// 鏁呴殰鎻忚堪
private static Map < id, List < FaultDesc >> getFaultDescMap(List < String > repairOrderIdList) {
List < Repair_reason__c > reasonList =
@@ -728,7 +802,13 @@
iflog.Type__c = LOG_TYPE;
iflog.Log__c = 'callout start\n';
insert iflog;
- NFM603Controller.executefuture(iflog, rprIds);
+ // 2022-04-29 zyh update start
+ if(UserInfo.getUserId().equals(System.Label.interfaceUserID)){
+ NFM603Controller.executefuture(iflog, rprIds);
+ }else{
+ NFM603Controller.callout(iflog.Id, rprIds);
+ }
+ // 2022-04-29 zyh update end
}
} else {
if (Trigger.isUpdate) {
diff --git a/force-app/main/default/classes/NFM603ControllerTest.cls b/force-app/main/default/classes/NFM603ControllerTest.cls
index 1688f92..d30f234 100644
--- a/force-app/main/default/classes/NFM603ControllerTest.cls
+++ b/force-app/main/default/classes/NFM603ControllerTest.cls
@@ -305,5 +305,13 @@
Database.executeBatch(new NFM603Batch(idList),100);
Test.stopTest();
}
+ @isTest
+ static void NFM603execute(){
+ List<BatchIF_Log__c> logList = [select id from BatchIF_Log__c];
+ Test.startTest();
+ BatchIF_Log__c iflog = logList[0];
+ NFM603Controller.ManualExecute(iflog.Id);
+ Test.stopTest();
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1