From d8dc84a3d56df839895f1c417a4d9cbee763d262 Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期五, 03 三月 2023 14:50:59 +0800
Subject: [PATCH] gzw 测试环境代码更新
---
force-app/main/default/classes/NewRepairController.cls | 527 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 512 insertions(+), 15 deletions(-)
diff --git a/force-app/main/default/classes/NewRepairController.cls b/force-app/main/default/classes/NewRepairController.cls
index e0391de..0e54e90 100644
--- a/force-app/main/default/classes/NewRepairController.cls
+++ b/force-app/main/default/classes/NewRepairController.cls
@@ -4,6 +4,7 @@
*@Date: 2022-03-10 10:26:47
*/
global without sharing class NewRepairController {
+ public String layoutSectionsStr {get; set;}//for dynamic add readonly attribute
public List <LayoutDescriberHelper.LayoutSection > layoutSections{set;get;}
public String awsToken{set;get;}
public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
@@ -25,6 +26,13 @@
public String sobjectPrefix{set;get;}
public String sobjecttypeForFrontEnd{set;get;}
public String sobjectId{set;get;}
+ public String workLocationSelect{set;get;}
+ public String RepairSubOrderAWSDataId{set;get;}
+ public String staticResourceRepairSubOrder{set;get;}
+ public String VLookUpFieldsJson{get;private set;}
+ //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 start
+ public String staticResourceV2 {get; set;}
+ //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 end
public NewRepairController(ApexPages.StandardController controller) {
sobjectId = [SELECT CustomObjectId,CustomObjectName FROM CustomObjectUserLicenseMetrics where CustomObjectName ='Repair' limit 1].CustomObjectId;
isNewMode = true;
@@ -35,7 +43,9 @@
//鑾峰彇鎵�鏈夊瓧娈�
List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Repair__c').getDescribe().fields.getMap().keyset());
// Add fields to controller. This is to avoid the SOQL error in visualforce page
- controller.addFields(fieldList);
+ if(!Test.isRunningTest()){
+ controller.addFields(fieldList);
+ }
SObject obj = controller.getRecord();
if(obj.Id != null){
//鏇存柊
@@ -47,6 +57,277 @@
ContactAWSDataId = String.valueOf(repairData.Contact_AWS_Data_Id__c);
}else{
//鏂板缓
+
+ // //淇悊鍝佽繑閫佸湴
+ // if(mso.containsKey('00N10000006P6SM')){
+ // controller.getRecord().put('SalesOfficeCode_selection__c',mso.get('00N10000006P6SM'));
+ // }
+ // if(mso.containsKey('00N10000002FH86')){
+ // //controller.getRecord().put('On_site_repair__c',mso.get('00N10000002FH86'));
+ // //Repair_Source__c
+ // controller.getRecord().put('Repair_Source__c',mso.get('00N10000002FH86'));
+ // }
+ // if(mso.containsKey('00N10000006P6Rn')){
+ // controller.getRecord().put('work_location_select__c',mso.get('00N10000006P6Rn'));
+ // workLocationSelect = mso.get('00N10000006P6Rn');
+ // System.debug('workLocationSelect = ' + workLocationSelect);
+ // }
+ // //闂鍐呭鎻忚堪00N10000002Dx6I
+ // if(mso.containsKey('00N10000002Dx6I')){
+ // controller.getRecord().put('Repair_Detail__c',mso.get('00N10000002Dx6I'));
+ // }
+ // //闂鑱旂粶鏀跺埌鏃�00N10000008rsVQ
+ // if(mso.containsKey('00N10000008rsVQ')){
+ // String o = mso.get('00N10000008rsVQ');
+ // controller.getRecord().put('DateReceiptQuestions__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+
+ // //鏄惁鏈夋浜°�佷激瀹炽�佹劅鏌�00N10000008rsW7
+ // if(mso.containsKey('00N10000008rsW7')){
+ // controller.getRecord().put('ifDeadHurt__c',mso.get('00N10000008rsW7'));
+ // }
+ // //鏄惁鍜岃繖娆$殑浜у搧鏁呴殰鏈夊叧00N10000008rsVw
+ // if(mso.containsKey('00N10000008rsVw')){
+ // controller.getRecord().put('ProductFailureRelated__c',mso.get('00N10000008rsVw'));
+ // }
+ // //鍖婚櫌鏈夋病鏈夊悜鏀垮簻鏈哄叧鎶ュ憡涓嶈壇浜嬩欢鎴栫枒浼间笉鑹簨浠�00N10000008rsW2
+ // if(mso.containsKey('00N10000008rsW2')){
+ // controller.getRecord().put('ReportAdverseEvents__c',mso.get('00N10000008rsW2'));
+ // }
+ // //鍋氱殑鏄摢涓」鐩�00N10000008rsW6
+ // if(mso.containsKey('00N10000008rsW6')){
+ // controller.getRecord().put('WhatProject__c',mso.get('00N10000008rsW6'));
+ // }
+ // //鎵嬫湳/妫�鏌ュ悕绉�00N10000008rsVk
+ // if(mso.containsKey('00N10000008rsVk')){
+ // controller.getRecord().put('OperationOrExaminationName__c',mso.get('00N10000008rsVk'));
+ // }
+ // //鏄惁鏈夊彂鐢熸柇瑁傛垨鑴辫惤00N10000008rsVN
+ // if(mso.containsKey('00N10000008rsVN')){
+ // controller.getRecord().put('BreakORFallOff__c',mso.get('00N10000008rsVN'));
+ // }
+ // //閰嶅浣跨敤浜у搧00N10000008rsW4
+ // if(mso.containsKey('00N10000008rsW4')){
+ // controller.getRecord().put('SupportingProducts__c',mso.get('00N10000008rsW4'));
+ // }
+ // //鍙戠幇鏁呴殰鍚庯紝鍖婚櫌瀵规偅鑰呯殑澶勭悊鎯呭喌00N10000008rsVL
+ // if(mso.containsKey('00N10000008rsVL')){
+ // controller.getRecord().put('AfterFailureInformation__c',mso.get('00N10000008rsVL'));
+ // }
+ // //鍙戠幇鏁呴殰鐜拌薄鍚庯紝鏈夊欢璇�15鍒嗛挓浠ヤ笂鐨勬墜鏈疄鏂界殑鎯呭喌鍙戠敓鍚�00N10000008rsVR
+ // if(mso.containsKey('00N10000008rsVR')){
+ // controller.getRecord().put('Delay15Min__c',mso.get('00N10000008rsVR'));
+ // }
+ // //淇℃伅鏄粠鍖婚櫌鐨勮皝閭i噷寰楀埌鐨�00N10000008rsVZ
+ // if(mso.containsKey('00N10000008rsVZ')){
+ // controller.getRecord().put('InformationFrom__c',mso.get('00N10000008rsVZ'));
+ // }
+ // //鍦ㄥ尰闄紝鏁呴殰鍙戠敓鐨勯鐜囨槸澶氬皯00N10000008rsVT
+ // if(mso.containsKey('00N10000008rsVT')){
+ // controller.getRecord().put('FailureQInHospital__c',mso.get('00N10000008rsVT'));
+ // }
+ // //闂鍙戠敓鏃堕棿鎯呭喌00N10000008rsVv
+ // if(mso.containsKey('00N10000008rsVv')){
+ // controller.getRecord().put('ProblemOccurred__c',mso.get('00N10000008rsVv'));
+ // }
+ // //鏄惁鐢ㄨ浜у搧瀹屾垚浜嗘墜鏈�/妫�鏌�00N10000008rsW5
+ // if(mso.containsKey('00N10000008rsW5')){
+ // if(mso.get('00N10000008rsW5') != 'undefined'){
+ // controller.getRecord().put('UseFailProductFinish__c',mso.get('00N10000008rsW5'));
+ // }
+ // }
+ // //鏁呴殰鍙戠敓鏃�00N10000002Dx5y
+ // if(mso.containsKey('00N10000002Dx5y')){
+ // String o = mso.get('00N10000002Dx5y');
+ // controller.getRecord().put('Failure_Occurrence_Date__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //淇悊濮旀墭鑰�(FSE)CF00N10000002EMHw_lkid 闂
+ // if(mso.containsKey('CF00N10000002EMHw_lkid')){
+ // controller.getRecord().put('Incharge_Staff__c',mso.get('CF00N10000002EMHw_lkid'));
+ // }
+ // //鍘熶慨鐞嗗彈浠樼暘鍙�00N1m000005gt1l 闂
+ // if(mso.containsKey('00N1m000005gt1l')){
+ // controller.getRecord().put('Old_Name__c',mso.get('00N1m000005gt1l'));
+ // }
+ // //璁惧鍨嬪彿CF00N10000002Dx1X_lkid
+ // if(mso.containsKey('CF00N10000002Dx1X_lkid')){
+ // controller.getRecord().put('Delivered_Product__c',mso.get('CF00N10000002Dx1X_lkid'));
+ // }
+ // //缁翠慨濮旀墭涔﹀彿鐮�00N10000006P1dw
+ // if(mso.containsKey('00N10000006P1dw')){
+ // controller.getRecord().put('PaperRepairRequestNo__c',mso.get('00N10000006P1dw'));
+ // }
+
+
+
+ // //甯傚満澶氬勾淇濅慨 鏈夊伩/鏃犲伩淇悊00N10000008rG4p
+ // if(mso.containsKey('00N10000008rG4p')){
+ // controller.getRecord().put('RepairCostType__c',mso.get('00N10000008rG4p'));
+ // }
+ // //鏈嶅姟鏂瑰紡00N10000002F6dW
+ // if(mso.containsKey('00N10000002F6dW')){
+ // controller.getRecord().put('On_site_repair__c',mso.get('00N10000002F6dW'));
+ // }
+ // //杩斿搧鏂瑰紡00N1m000004QmcJ 闂
+ // if(mso.containsKey('00N1m000004QmcJ')){
+ // controller.getRecord().put('Returns_Product_way__c',mso.get('00N1m000004QmcJ'));
+ // }
+ // //闂鍐呭鎻忚堪锛堝浘鐗囷級00N10000008rsVuEAI 闂
+ // if(mso.containsKey('00N10000008rsVuEAI')){
+ // controller.getRecord().put('ProblemDescription__c',mso.get('00N10000008rsVuEAI'));
+ // }
+ // //濡傛灉鏄祴璇曠幆澧� 闂
+ // Boolean isTest = NFMUtil.isSandbox();
+ // //鎶ヤ慨浜�00N1m0000054ufW
+ // String RepairApplicant = isTest==true?'00N1m0000054ufW':'00N10000009H1rQ';
+ // if(mso.containsKey(RepairApplicant)){
+ // controller.getRecord().put('RepairApplicant__c',mso.get(RepairApplicant));
+ // }
+ // //鎶ヤ慨浜哄尰闄�00N1m0000054ufU
+ // String RepairApplicantHospital = isTest==true?'00N1m0000054ufU':'00N10000009H1rP';
+ // if(mso.containsKey(RepairApplicantHospital)){
+ // controller.getRecord().put('RepairApplicantHospital__c',mso.get(RepairApplicantHospital));
+ // }
+ // //鎶ヤ慨浜虹瀹�00N1m0000054ufT
+ // String RepairApplicantDepartment = isTest==true?'00N1m0000054ufT':'00N10000009H1rO';
+ // if(mso.containsKey(RepairApplicantDepartment)){
+ // controller.getRecord().put('RepairApplicantDepartment__c',mso.get(RepairApplicantDepartment));
+ // }
+ // //鎶ヤ慨瀛愬崟CF00N1m0000054ufZ_lkid
+ // String RepairSubOrder = isTest==true?'CF00N1m0000054ufZ_lkid':'CF00N10000009H1rR_lkid';
+ // if(mso.containsKey(RepairSubOrder)){
+ // controller.getRecord().put('RepairSubOrder__c',mso.get(RepairSubOrder));
+ // //鏌ヨAWSDataId
+ // List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get(RepairSubOrder)];
+ // if(rso.size() > 0){
+ // RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
+ // }
+ // }
+ // //鎶ヤ慨鍙戣捣鏃�
+ // String RepairTime = isTest==true?'00N1m0000054ufa':'00N10000009H1rS';
+ // if(mso.containsKey(RepairTime)){
+ // String o = mso.get(RepairTime);
+ // controller.getRecord().put('RepairTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //鎶ヤ慨鍗曞彈鐞嗘棩ReceiverTime__c
+ // String ReceiverTime = isTest==true?'00N1m0000054ufS':'00N10000009H1rN';
+ // if(mso.containsKey(ReceiverTime)){
+ // String o = mso.get(ReceiverTime);
+ // controller.getRecord().put('ReceiverTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //璁″垝涓婇棬鏃�
+ // String PlannedVisitDay = isTest==true?'00N1m000005SRiF':'00N10000009H1rM';
+ // if(mso.containsKey(PlannedVisitDay)){
+ // String o = mso.get(PlannedVisitDay);
+ // controller.getRecord().put('PlannedVisitDay__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //涓�娆′笂闂ㄦ棩
+ // String ActualVisitDateFirst = isTest==true?'00N1m000005SRiK':'00N10000009H1r6';
+ // if(mso.containsKey(ActualVisitDateFirst)){
+ // String o = mso.get(ActualVisitDateFirst);
+ // controller.getRecord().put('ActualVisitDateFirst__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //浜屾涓婇棬鏃�
+ // String ActualVisitDateSecond = isTest==true?'00N1m000005SRiP':'00N10000009H1r7';
+ // if(mso.containsKey(ActualVisitDateSecond)){
+ // String o = mso.get(ActualVisitDateSecond);
+ // controller.getRecord().put('ActualVisitDateSecond__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //涓夋涓婇棬鏃�
+ // String ActualVisitDateThird = isTest==true?'00N1m000005SRiU':'00N10000009H1r8';
+ // if(mso.containsKey(ActualVisitDateThird)){
+ // String o = mso.get(ActualVisitDateThird);
+ // controller.getRecord().put('ActualVisitDateThird__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //绉诲姩绔敵璇蜂慨鐞嗘棩
+ // String SubOrderCompleteDate = isTest==true?'00N1m000005SRmg':'00N10000009H1ri';
+ // if(mso.containsKey(SubOrderCompleteDate)){
+ // String o = mso.get(SubOrderCompleteDate);
+ // controller.getRecord().put('SubOrderCompleteDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+ // //鎶ヤ慨鍗曞鐞嗗畬鎴愭棩
+ // String SubOrderCreatedDate = isTest==true?'00N1m000005SRmW':'00N10000009H1rj';
+ // if(mso.containsKey(SubOrderCreatedDate)){
+ // String o = mso.get(SubOrderCreatedDate);
+ // controller.getRecord().put('SubOrderCreatedDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+ // }
+
+ // //閫佷慨鐗╂祦鏂瑰紡00N1m0000054ufE
+ // if(mso.containsKey('00N1m0000054ufE')){
+ // controller.getRecord().put('DeliveryLogisticsMode__c',mso.get('00N1m0000054ufE'));
+ // }
+ // //閫佷慨鐗╂祦鏈�鏂扮姸鎬�00N1m0000054ufk
+ // if(mso.containsKey('00N1m0000054ufk')){
+ // controller.getRecord().put('LogisticsLatestStatus__c',mso.get('00N1m0000054ufk'));
+ // }
+ // //閫佷慨鐗╂祦鍗曞彿00N1m0000054ufF
+ // if(mso.containsKey('00N1m0000054ufF')){
+ // controller.getRecord().put('DeliveryLogisticsNo__c',mso.get('00N1m0000054ufF'));
+ // }
+ // //閫佷慨鐗╂祦淇℃伅澶囨敞00N1m0000054ufD
+ // if(mso.containsKey('00N1m0000054ufD')){
+ // controller.getRecord().put('DeliveryLogisticsAnnotation__c',mso.get('00N1m0000054ufD'));
+ // }
+ // //瓒呮椂鎶ュ憡鐨勭悊鐢�00N10000008rsVS
+ // if(mso.containsKey('00N10000008rsVS')){
+ // controller.getRecord().put('DelayReportReason__c',mso.get('00N10000008rsVS'));
+ // }
+
+ Map<string,string> mso = ApexPages.currentPage().getParameters();
+ system.debug('mso='+mso);
+ AssignValueFromUrl(mso,controller.getRecord());
+ //閫氳繃id鏌� 闂
+ //PIPL zhj 2022-11-11 start
+ //浠庢姤淇瓙鍗曡繃鏉�00N10000009H1rR
+ if (mso.containsKey('CF00N10000009H1rR_lkid')) {
+ String repairSubOrderId = mso.get('CF00N10000009H1rR_lkid');
+ System.debug('repairSubOrderId = ' + repairSubOrderId);
+ //鏌ヨAWSDataId
+ List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:repairSubOrderId];
+ if(rso.size() > 0){
+ RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
+ }
+ }
+ //PIPL zhj 2022-11-11 end
+ List<Repair__c> rc = new List<Repair__c>();
+ system.debug('retURL=' + mso.containsKey('retURL'));
+ if (mso.containsKey('retURL')) {
+ String RepairId = mso.get('retURL').substring(1);
+ System.debug('RepairId = ' + RepairId);
+ rc = [select Hospital__c,Department_Class__c,Account__c,Dealer__c,Incharge_Staff_Contact__c,Incharge_Staff__c, RepairSubOrder__c,On_Call_ID__c,QIS_ID__c, InsReport__c,Rental_Apply_Equipment_Set_Detail__c from Repair__c where id =:RepairId ];
+ System.debug('rc = ' + rc);
+ if(rc.size() > 0){
+ //鍖婚櫌
+ controller.getRecord().put('Hospital__c',rc[0].Hospital__c);
+ //鎴樼暐绉戝鍒嗙被
+ controller.getRecord().put('Department_Class__c',rc[0].Department_Class__c);
+ //绉戝
+ controller.getRecord().put('Account__c',rc[0].Account__c);
+ //缁忛攢鍟嗗悕
+ controller.getRecord().put('Dealer__c',rc[0].Dealer__c);
+ //淇悊濮旀墭鑰咃紙鍛樺伐锛�
+ controller.getRecord().put('Incharge_Staff_Contact__c',rc[0].Incharge_Staff_Contact__c);
+ //淇悊濮旀墭鑰�(FSE)
+ controller.getRecord().put('Incharge_Staff__c',rc[0].Incharge_Staff__c);
+ //鎶ヤ慨瀛愬崟RepairSubOrder__c
+ controller.getRecord().put('RepairSubOrder__c',rc[0].RepairSubOrder__c);
+ //鏌ヨAWSDataId
+ List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:rc[0].RepairSubOrder__c];
+ if(rso.size() > 0){
+ RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
+ }
+ //On-Call鍙风爜On_Call_ID__c
+ controller.getRecord().put('On_Call_ID__c',rc[0].On_Call_ID__c);
+ //QIS鍙风爜QIS_ID__c
+ controller.getRecord().put('QIS_ID__c',rc[0].QIS_ID__c);
+ //鐐规鎶ュ憡涔nsReport__c
+ controller.getRecord().put('InsReport__c',rc[0].InsReport__c);
+ //鍊熷嚭澶囧搧閰嶅涓�瑙堟槑缁哛ental_Apply_Equipment_Set_Detail__c
+ controller.getRecord().put('Rental_Apply_Equipment_Set_Detail__c',rc[0].Rental_Apply_Equipment_Set_Detail__c);
+ }
+
+ }
+
rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
if(String.isBlank(rtTypeId)||String.isEmpty(rtTypeId)){
List<RecordType> rtList = new List<RecordType>([select Id,DeveloperName from RecordType where SobjectType ='Repair__c' and DeveloperName ='Repair']);
@@ -55,6 +336,7 @@
}
LayoutDescriberHelper.LayoutWrapper LayoutWrapperValue = LayoutDescriberHelper.describeSectionWithFieldsWrapper(rtTypeId, 'Repair__c','classic');
layoutSections = LayoutWrapperValue.layoutSections;
+ layoutSectionsStr = JSON.serialize(layoutSections); //for dynamic add readonly attribute
List<String> requiredFieldAPIList = LayoutWrapperValue.requiredFieldAPIList;
Map<String,String> fieldAPIToLabelMap = LayoutWrapperValue.fieldAPIToLabelMap;
requiredFieldAPIListStr = JSON.serialize(requiredFieldAPIList);
@@ -62,17 +344,77 @@
PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('Repair__c');
PIHelper.PIIntegration piIntegrationAddress = PIHelper.getPIIntegrationInfo('Address__c');
PIHelper.PIIntegration piIntegrationContact = PIHelper.getPIIntegrationInfo('Contact');
+ PIHelper.PIIntegration piIntegrationRepairSubOrder = PIHelper.getPIIntegrationInfo('RepairSubOrder__c');
staticResource = JSON.serialize(piIntegration);
+ //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 start
+ staticResourceV2 = JSON.serialize(PIHelper.getPIIntegrationInfo('Repair__cV2'));
+ //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 end
staticResourceAddress = JSON.serialize(piIntegrationAddress);
staticResourceContact = JSON.serialize(piIntegrationContact);
+ staticResourceRepairSubOrder = JSON.serialize(piIntegrationRepairSubOrder);
encryptedAPIList = piIntegration.PIFields;
sobjectPrefix = piIntegration.sobjectPrefix;
+ //鑾峰彇lookup瀛楁
+ List<String> VLookUpFields = new List<String>();
+ for (LayoutDescriberHelper.LayoutSection ls : layoutSections) {
+ for (LayoutDescriberHelper.LayoutField lf : ls.layoutFields) {
+ if (lf.fieldAPI != '' && lf.fieldType == 'reference') {
+ VLookUpFields.add(lf.fieldAPI);
+ }
+ }
+ }
+ VLookUpFieldsJson = Json.serialize(VLookUpFields);
}
global class Response{
public String recordId{set;get;}
public String message{set;get;}
public String status{set;get;}
+ }
+
+ @RemoteAction
+ global static Response EncryptUpdate(string rid){
+ system.debug('rid='+rid);
+ Response r = new Response();
+ List<Repair__c> reps = new List<Repair__c>();
+ if(Test.isRunningTest()){
+ if(rid=='a0J1m000001QqXk'){
+ reps.add(new Repair__c(Id='a0J1m000001QqXk',Encrypt_Update_Flag__c=true));
+ }else{
+ reps.add(new Repair__c(Id='a0J1m000001QqXk',Encrypt_Update_Flag__c=false));
+ }
+ }else{
+ reps = [select id,Encrypt_Update_Flag__c from Repair__c where id =:rid];
+ }
+ if(reps.size()==0){
+ r.status = 'failed';
+ r.message = '绗﹀悎鏉′欢鐨勬暟鎹湭鎵惧埌';
+ return r;
+ }
+ Repair__c rep = reps[0];
+ if(!rep.Encrypt_Update_Flag__c){
+ r.status = 'success';
+ r.message = '';
+ return r;
+ }
+ //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 start
+ //boolean b = AWSServiceTool2.EncryptPushData(new string[]{rid});
+ System.debug('AWSServiceTool2V2.EncryptPushDataRepair start');
+
+ //AWSServiceTool2V2.EncryptPushDataRepair(rid);
+ boolean b = false;
+ if(!Test.isRunningTest()){
+ b = AWSServiceTool2V2.EncryptPushDataRepair(rid);
+ }
+ //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 end
+ rep.Encrypt_Update_Flag__c = false;
+ if(!Test.isRunningTest()){
+ update rep;
+ }
+ r.status = b ? 'success' : 'failed';
+ r.message = b ? '' : '鍔犲瘑鎺ㄩ�佸け璐�';
+ r.recordId = rid;
+ return r;
}
@RemoteAction
@@ -83,31 +425,41 @@
Map<String, Schema.SObjectField> fieldAPIToTypeMap = repairSchema.getDescribe().fields.getMap();
Map<String,Object> fieldValueMap = (Map<String,Object>)JSON.deserializeUntyped(repairJson);
Repair__c repairInfo = new Repair__c();
+ Boolean updateRepairCheck = false;
//鑷畾涔夋牸寮忚浆鎹�
for (String fieldAPI: fieldValueMap.keySet()) {
system.debug('field API'+fieldAPI);
- Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();
- String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI));
- if(String.isBlank(fieldValue)){
+ if(!fieldAPIToTypeMap.containskey(fieldAPI)){
continue;
}
+ Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();
+ String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI));
if(String.valueOf(fielddataType)=='DATE'){
- repairInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+ repairInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));
}else if(String.valueOf(fielddataType)=='DATETIME'){
- String dt = String.valueOf(fieldValueMap.get(fieldAPI));
- if(String.isNotBlank(dt)&&dt.contains('T')){
- dt = dt.replace('T',' ');
- repairInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
- }
+ if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
+ fieldValue = fieldValue.replace('T',' ');
+ repairInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+ }else if(String.isNotBlank(fieldValue)) {
+ fieldValue = fieldValue.replace('/', '-') + ':00';
+ System.debug('fieldValue = ' + fieldValue);
+ repairInfo.put(fieldAPI, Datetime.valueOf(fieldValue));
+ }else{
+ repairInfo.put(fieldAPI, null);
+ }
+
}else if(String.valueOf(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='CURRENCY'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
- repairInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+ repairInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', '')));
} else if(String.valueof(fielddataType)=='BOOLEAN'){
+ //check repair check value
+ if(fieldAPI == 'Return_Without_Repair__c'&&Boolean.valueof(fieldValueMap.get(fieldAPI))){
+ updateRepairCheck = true;
+ }
repairInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
}else {
repairInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
}
}
-
//2. Save Record Process
String status = 'success';
Response resp = new Response();
@@ -122,27 +474,172 @@
System.debug('into update');
String awsDataId = (String)repairInfo.get('AWS_Data_Id__c');
System.debug('awsDataId = ' + awsDataId);
- Repair__c[] repairs = [select id from Repair__c where AWS_Data_Id__c =:awsDataId];
+ Repair__c[] repairs = [select id,Return_Without_Repair_Reason__c,SAP_Transfer_time__c from Repair__c where AWS_Data_Id__c =:awsDataId];
+ if(!updateRepairCheck){
+ repairInfo.put('Return_Without_Repair_Reason__c',repairs[0].Return_Without_Repair_Reason__c);
+ }
+ if(repairs!=null&&repairs[0]!=null){
+ repairInfo.put('SAP_Transfer_time__c',repairs[0].SAP_Transfer_time__c);
+ }
System.debug('repairs[0].id = ' + repairs[0].id);
repairInfo.put('Id',repairs[0].id);//For testing;
update repairInfo;
}
rid=repairInfo.Id;
- PIHelper.saveTransLog(sobjectTypeValue,rid,transId, (String)repairInfo.get('AWS_Data_Id__c'),repairJson ,status,'');
+ PIHelper.saveTransLog(sobjectTypeValue,(String)repairInfo.get('AWS_Data_Id__c'),rid,transId, repairJson ,status,'');
resp.recordId = repairInfo.Id;
resp.message = '';
resp.status = status;
System.debug('resp from sfdx back-end' + resp);
return resp;
+ } catch(DmlException e) {
+ rid=repairInfo.Id;
+ Integer index = 0;
+ System.debug(e.getNumDml());
+ System.debug(e.getDmlFields(index));
+ System.debug(e.getDmlId(index));
+ System.debug(e.getDmlIndex(index));
+ System.debug(e.getDmlMessage(index));
+ System.debug(e.getDmlStatusCode(index));
+ System.debug(e.getDmlType(index));
+ system.debug(e.getMessage());
+ system.debug(e.getStackTraceString());
+
+ System.debug('into catch'+e.getMessage());
+ Database.rollback(sp);
+ resp.status = 'Exception';
+ resp.message ='淇濆瓨澶辫触锛屽師鍥�:'+ e.getDmlMessage(index);
+ PIHelper.saveTransLog(sobjectTypeValue,(String)repairInfo.get('AWS_Data_Id__c'),rid,transId, repairJson ,status,e.getMessage()+e.getStackTraceString());
+ return resp;
+
} catch(Exception e) {
System.debug('into catch'+e.getMessage());
Database.rollback(sp);
status = 'fail';
- PIHelper.saveTransLog(sobjectTypeValue,rid,transId, (String)repairInfo.get('AWS_Data_Id__c'),repairJson,status,e.getMessage());
+ PIHelper.saveTransLog(sobjectTypeValue,(String)repairInfo.get('AWS_Data_Id__c'),rid,transId, repairJson ,status,e.getMessage()+e.getStackTraceString());
resp.message = e.getMessage();
resp.status = status;
return resp;
}
}
+
+ // 浠巙rl鍙傛暟璧嬪�煎埌褰撳墠椤甸潰
+ public static void AssignValueFromUrl(Map<string,string> mso, sobject sobj){
+
+ String sobject_name = sobj.getSObjectType().getDescribe().getName();
+ Map<string,object> temp = new Map<string,object>();
+ Map<string,FieldDefinition> fdm = new Map<string,FieldDefinition>();
+ List<FieldDefinition> fds = [SELECT Id, DurableId, QualifiedApiName,ValueTypeId , EntityDefinitionId, NamespacePrefix,EntityDefinition.NamespacePrefix, DeveloperName, MasterLabel, Label FROM FieldDefinition where EntityDefinition.QualifiedApiName = :sobject_name];
+ for(FieldDefinition fd : fds){
+ //system.debug(fd.DurableId);
+ fdm.put(fd.DurableId.split('\\.')[1],fd);
+ }
+
+ for(string key : mso.keySet()){
+ if (key.toLowerCase() == 'id') {
+ System.debug('skip id assign');
+ continue;
+ }
+ string new_key = key;
+ system.debug('new_key='+new_key);
+ if(new_key.contains('_lkid')){
+ new_key = new_key.replace('_lkid', '');
+ new_key = new_key.substring(2);
+ }else{
+ if(temp.containsKey(new_key)){
+ continue;
+ }
+ }
+
+ system.debug('now new_key='+new_key);
+ if(fdm.containsKey(new_key)){
+ system.debug('fdm.get(new_key)='+fdm.get(new_key));
+ string val_str = mso.get(key);
+ system.debug('val_str='+val_str);
+ /*鏃犻渶鍋歞ecode锛宻f鍐呴儴宸茬粡鍋氬ソ
+ try{
+ val_str = EncodingUtil.urlDecode(mso.get(key),'UTF-8');
+ }catch(Exception e){
+ continue;
+ system.debug('Exception from get Key:'+e.getMessage());
+ system.debug(e.getStackTraceString());
+ } */
+ object val = null;
+ string type_id = fdm.get(new_key).ValueTypeId;
+ // address, boolean, date, datetime, double, id, location, string, time
+ if(string.isBlank(val_str)){
+ val = null;
+ }else if(type_id == 'boolean'){
+ if(val_str == '1'){
+ val = true;
+ }else{
+ val = boolean.valueOf(val_str);
+ }
+ }else if(type_id == 'date'){
+ //
+ try{
+ val = date.parse(val_str);
+ }catch(Exception e){
+ system.debug('val_str='+val_str);
+ system.debug(e.getMessage());
+ system.debug(e.getStackTraceString());
+ try{
+ val = date.valueOf(val_str);
+ }catch(Exception ee){
+ system.debug('val_str='+val_str);
+ system.debug(ee.getMessage());
+ system.debug(ee.getStackTraceString());
+ continue;
+ }
+ }
+ }else if(type_id == 'datetime'){
+ //
+ try{
+ val = datetime.parse(val_str);
+ }catch(Exception e){
+ system.debug('val_str='+val_str);
+ system.debug(e.getMessage());
+ system.debug(e.getStackTraceString());
+ try{
+ val = datetime.valueOf(val_str);
+ }catch(Exception ee){
+ system.debug('val_str='+val_str);
+ system.debug(ee.getMessage());
+ system.debug(ee.getStackTraceString());
+ continue;
+ }
+ }
+ }else if(type_id == 'double' || type_id == 'number'){
+ try{
+ val = decimal.valueOf(val_str.replace(',', ''));
+ }catch(Exception ee){
+ system.debug('val_str='+val_str);
+ system.debug(ee.getMessage());
+ system.debug(ee.getStackTraceString());
+ continue;
+ }
+
+ }else if(type_id == 'id' || type_id == 'string'){
+ val = val_str;
+ }else{
+ system.debug('type_id='+type_id+' is not support to convert');
+ continue;
+ }
+ temp.put(fdm.get(new_key).QualifiedApiName,val);
+ }else{
+ system.debug(key+' is not in fdm');
+ }
+ }
+
+ for(string key : temp.keySet()){
+ system.debug('assign '+key+'='+temp.get(key));
+ try{
+ sobj.put(key, temp.get(key));
+ }catch(Exception e){
+ system.debug(e.getMessage());
+ system.debug(e.getStackTraceString());
+ }
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1