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/OnCallController.cls | 58 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 34 insertions(+), 24 deletions(-)
diff --git a/force-app/main/default/classes/OnCallController.cls b/force-app/main/default/classes/OnCallController.cls
index 23a15ff..910fdad 100644
--- a/force-app/main/default/classes/OnCallController.cls
+++ b/force-app/main/default/classes/OnCallController.cls
@@ -1,10 +1,3 @@
-/**
- * @description :
- * @author : ChangeMeIn@UserSettingsUnder.SFDoc
- * @group :
- * @last modified on : 03-28-2022
- * @last modified by : ChangeMeIn@UserSettingsUnder.SFDoc
-**/
global without sharing class OnCallController {
public String layoutSectionsStr {get; set;}//for dynamic add readonly attribute
public List <LayoutDescriberHelper.LayoutSection > layoutSections{set;get;}
@@ -12,6 +5,7 @@
public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
public static String sobjectTypeValue = 'On_Call__c';
public Boolean isNewMode{set;get;}
+ public Boolean isCloneMode{protected set;get;}
public String rtTypeId {get; set;}
public String AWSDataId{set;get;}
public List<String> encryptedAPIList{set;get;}
@@ -28,6 +22,7 @@
public OnCallController(ApexPages.StandardController controller) {
// sobjectId = [SELECT CustomObjectId,CustomObjectName FROM CustomObjectUserLicenseMetrics where CustomObjectName ='OnCall' limit 1].CustomObjectId;
isNewMode = true;
+ isCloneMode = false;
Input_Required_Field_Msg = Label.Input_Required_Field_Msg;
PIPL_Name_Label = Label.PIPL_Name_Label;
PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg;
@@ -37,7 +32,13 @@
// Add fields to controller. This is to avoid the SOQL error in visualforce page
if(!Test.isRunningTest()){
controller.addFields(fieldList);
+ }
+ Map<string,string> mso = ApexPages.currentPage().getParameters();
+ System.debug('mso:' + mso);
+ if(mso != null && mso.containsKey('newclone')){
+ isCloneMode = true;
}
+ System.debug('isClone:' + isCloneMode);
SObject obj = controller.getRecord();
if(obj.Id != null){
//鏇存柊
@@ -78,33 +79,31 @@
On_Call__c onCallInfo = new On_Call__c();
//鑷畾涔夋牸寮忚浆鎹�
for (String fieldAPI: fieldValueMap.keySet()) {
- system.debug('field API'+fieldAPI);
- if(!fieldAPIToTypeMap.containskey(fieldAPI)){
- continue;
- }
+ system.debug('field API='+fieldAPI);
Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();
String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI));
+ system.debug('Field Type:'+fielddataType+' field Value='+fieldValue);
if(String.valueOf(fielddataType)=='DATE'){
- onCallInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));
+ onCallInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));
}else if(String.valueOf(fielddataType)=='DATETIME'){
if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
fieldValue = fieldValue.replace('T',' ');
onCallInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+ //20220405 By ChenYanan Start
}else if(String.isNotBlank(fieldValue)) {
fieldValue = fieldValue.replace('/', '-') + ':00';
- System.debug('fieldValue = ' + fieldValue);
onCallInfo.put(fieldAPI, Datetime.valueOf(fieldValue));
+ //20220405 By ChenYanan End
}else{
onCallInfo.put(fieldAPI, null);
- }
-
- }else if(String.valueOf(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='CURRENCY'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
- onCallInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', '')));
+ }
+ }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+ onCallInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?0:Decimal.valueOf(fieldValue));
} else if(String.valueof(fielddataType)=='BOOLEAN'){
onCallInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
}else {
- onCallInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
- }
+ onCallInfo.put(fieldAPI,fieldValue);
+ }
}
//2. Save Record Process
@@ -112,16 +111,27 @@
Response resp = new Response();
Savepoint sp = Database.setSavepoint();
String rid = '';
+ Boolean isClone = false;
+ String awsDataId = '';
try{
- System.debug('abcde');
- if(isNew){
+ System.debug('abcde'+isNew);
+ awsDataId = (String)onCallInfo.get('AWS_Data_Id__c');
+ if (string.isBlank(awsDataId)) {
+ throw new DMLException('鏇存柊鏃禔WS_Data_Id__c涓嶈兘涓虹┖');
+ }
+ System.debug('awsDataId = ' + awsDataId);
+ On_Call__c[] onCalls = Database.query('select id from On_Call__c where AWS_Data_Id__c =:awsDataId');
+ if(!isNew){
+ isClone = onCalls.size() == 0;
+ }
+ if(isNew || isClone){
System.debug('onCallInfozhj = ' + onCallInfo);
insert onCallInfo;
}else{
System.debug('into update');
- String awsDataId = (String)onCallInfo.get('AWS_Data_Id__c');
- System.debug('awsDataId = ' + awsDataId);
- On_Call__c[] onCalls = [select id from On_Call__c where AWS_Data_Id__c =:awsDataId];
+ // String awsDataId = (String)onCallInfo.get('AWS_Data_Id__c');
+ // System.debug('awsDataId = ' + awsDataId);
+ // On_Call__c[] onCalls = [select id from On_Call__c where AWS_Data_Id__c =:awsDataId];
System.debug('onCalls[0].id = ' + onCalls[0].id);
onCallInfo.put('Id',onCalls[0].id);//For testing;
update onCallInfo;
--
Gitblit v1.9.1