public with sharing class lexNewSparePartsLoanApplicationCtl { public lexNewSparePartsLoanApplicationCtl() { } //获取当前登录人的 id @AuraEnabled public static UserResult UserInfo_Owner() { UserResult result = new UserResult(); ID myUserID = UserInfo.getUserId(); try { User tempUser = [select Id,Job_Category__c,isFormal_Stuff__c,FirstName,LastName,Province__c from user where id = : myUserID ]; result.id = tempUser.Id; result.isFormalStuff = tempUser.isFormal_Stuff__c; result.firstName = tempUser.FirstName == null ? '' : tempUser.FirstName; result.lastName = tempUser.LastName == null ? '' : tempUser.LastName; result.userProvince = tempUser.Province__c; result.userJobCategory = tempUser.Job_Category__c; } catch (exception e) { result.result = e.getMessage(); } return result; } @AuraEnabled public static InitData init(String recordId){ InitData res = new initData(); try { //2023 08 18 ZhangHeyang PIPL相关按钮修改 Start --- 新增查询字段Related_Opportunity1_ID__r.Name List repList = [select Id,HospitalID__c,RentalApplyId__c,Related_Opportunity1_ID__r.Id,Related_Opportunity1_ID__r.Name,Campaign__r.Id,Status__c,Rental_Apply_Flag__c,OPDType__c,CampaignStatus__c,CampaignRecodeTypeId__c,Internal_in_charge_province__c,StayOrNot__c,OriginalOpdPlanApplication__c,IF_Approved__c,Approved_No__c,Approved_Status__c,Rental_Apply2__c,OriginalOpdPlan__c,CampaignName__c,Related_Opportunity1_ID__c,NoOpp_Reason__c,Account_Laboratory__c,OCM_category_Name__c,OCM_category_ID__c,HospitalName__c,Name,IsJump__c,JumpCause__c,originalOpdRentalApply__c,RentalApplyName__c from OPDPlan__c where Id =: recordId]; //2023 08 18 ZhangHeyang PIPL相关按钮修改 End if(repList.size() > 0){ OPDPlan__c rep = repList[0]; res.opdPlanId = rep.Id; res.opdHospitalId = rep.HospitalID__c == null ? '' : rep.HospitalID__c; res.opdCampaignId = rep.Campaign__r.Id == null ? '' : rep.Campaign__r.Id; // res.opdCampaignId = rep.CampaignName__c == null ? '' : rep.CampaignName__c; res.opdOpportunityId = rep.Related_Opportunity1_ID__r.Id == null ? '' : rep.Related_Opportunity1_ID__r.Id; //2023 08 18 ZhangHeyang PIPL相关按钮修改 Start res.opdOpportunityName = rep.Related_Opportunity1_ID__r.Name == null ? '' : rep.Related_Opportunity1_ID__r.Name; //2023 08 18 ZhangHeyang PIPL相关按钮修改 End res.opdStatus = rep.Status__c == null ? '' : rep.Status__c; res.opdRentalApplyFlag = rep.Rental_Apply_Flag__c; res.opdType = rep.OPDType__c == null ? '' : rep.OPDType__c; res.opdCampaignStatus = rep.CampaignStatus__c == null ? '' : rep.CampaignStatus__c; res.opdCampaignRecodeTypeId = rep.CampaignRecodeTypeId__c == null ? '' : rep.CampaignRecodeTypeId__c; res.opdInternalinchargeprovince = rep.Internal_in_charge_province__c == null ? '' : rep.Internal_in_charge_province__c; res.opdStayOrNot = rep.StayOrNot__c == null ? '' : rep.StayOrNot__c; res.opdOriginalOpdPlanApplication = rep.OriginalOpdPlanApplication__c== null ? '' : rep.OriginalOpdPlanApplication__c; res.opdIFApproved = rep.IF_Approved__c; res.opdApprovedNo = rep.Approved_No__c == null ? '' : rep.Approved_No__c; res.opdApprovedStatus = rep.Approved_Status__c == null ? '' : rep.Approved_Status__c; res.opdRentalApply2 = rep.Rental_Apply2__c == null ? '' : rep.Rental_Apply2__c; res.opdOriginalOpdPlan = rep.OriginalOpdPlan__c == null ? '' : rep.OriginalOpdPlan__c; res.opdCampaignName = rep.CampaignName__c == null ? '' : rep.CampaignName__c; res.opdRelatedOpportunity1ID = rep.Related_Opportunity1_ID__c == null ? '' : rep.Related_Opportunity1_ID__c; res.opdNoOppReason = rep.NoOpp_Reason__c == null ? '' : rep.NoOpp_Reason__c; res.opdAccountLaboratory = rep.Account_Laboratory__c == null ? '' : rep.Account_Laboratory__c; res.opdOCMcategoryName = rep.OCM_category_Name__c == null ? '' : rep.OCM_category_Name__c; res.opdOCMcategoryId = rep.OCM_category_ID__c == null ? '' : rep.OCM_category_ID__c; res.opdHospitalName = rep.HospitalName__c == null ? '' : rep.HospitalName__c; res.opdName = rep.Name == null ? '' : rep.Name; res.opdIsJump = rep.IsJump__c; res.opdJumpCause = rep.JumpCause__c == null ? '' : rep.JumpCause__c; res.opdoriginalOpdRentalApply = rep.originalOpdRentalApply__c == null ? '' : rep.originalOpdRentalApply__c; res.opdRentalApplyName = rep.RentalApplyId__c == null ? '' : rep.RentalApplyId__c; res.opdStatusProcessState = System.Label.StatusProcessState; res.opdCampaignTypeId = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('Service_trainig').getRecordTypeId(); return res; } return null; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } @AuraEnabled public static NewApply newApplyInit(String recordId) { NewApply newApp = new NewApply(); List opdIdList = new List(); String s=''; try { List opdList = [SELECT Id,Name,OriginalOpdPlan__c FROM OPDPlan__c WHERE Id = :recordId]; if (opdList.size() > 0) { for (OPDPlan__c opdId : opdList) { opdIdList.add(opdId.OriginalOpdPlan__c); } String objectName = 'Rental_Apply__c'; // 要获取字段的对象名 Map globalDescribe = Schema.getGlobalDescribe(); Schema.SObjectType objType = globalDescribe.get(objectName); if (objType != null) { Schema.DescribeSObjectResult objDescribe = objType.getDescribe(); Map fieldMap = objDescribe.fields.getMap(); s+='SELECT '; //跟进询价1的Name deloitte-zhj 20230921 // 现在,fieldMap中包含了对象的所有字段信息 for (String fieldName : fieldMap.keySet()) { if(!fieldName.equals('id')) s+=fieldName+','; } s=s.removeEnd(','); s+=' FROM Rental_Apply__c where OPDPlan__c=\''+opdIdList[0]+'\''; system.debug('SQL:'+s); system.debug('SQL:'+s); List OPDPlans = Database.query(s); s=''; if(OPDPlans.size()>0){ system.debug('in!'); for (String fieldName : fieldMap.keySet()) { String formaF=fieldMap.get(fieldName).getDescribe().getName(); // || formaF != 'Name' if(formaF != 'Id' || formaF != 'Status__c'){ if(formaF == 'Request_shipping_day__c' || formaF == 'Hope_Lonaer_date_Num__c'|| formaF == 'Old_Rental_Apply__c'|| formaF == 'Split_Apply_Reason__c'|| formaF == 'Cancel_Reason__c' || formaF == 'Loaner_cancel_reason__c' || formaF == 'Loaner_cancel_request__c'){ s+=formaF+'=,'; }else{ if(OPDPlans.get(0).get(fieldName)!=null&&!OPDPlans.get(0).get(fieldName).equals('null')) s+=formaF+'='+OPDPlans.get(0).get(fieldName)+','; } } } s=s.removeEnd(','); } } List nObjList = [SELECT Id,Name, Request_return_day__c, // 预定归还日 Request_shipping_day__c, // 希望到货日 Hope_Lonaer_date_Num__c, // 希望借用天数 Cancel_Reason__c, // 取消理由 Loaner_cancel_reason__c, // 备品申请取消理由 Loaner_cancel_request__c, // 备品申请取消理由备注 Request_demo_time__c, // 申请时间 Request_approval_time__c, // 批准时间(申请提交时间) Application_accept_time__c, // 申请受理时间(回答时间) Request_answer_time__c, // 备品首次分配时间 Response__c, // 应答沟通 Assign_Person__c, // 分配人 Old_Rental_Apply__c, // 旧借出申请 Loaner_medical_Staff__r.AWS_Data_Id__c, //deloitte-zhj 科室负责人的AWSID 20230916 AWS_Data_Id__c, //deloitte-zhj 备品借出申请的AWSID 20230916 Follow_UP_Opp__r.Name, //deloitte-zhj 跟进询价1 20230922 repair__r.Name //deloitte-zhj 修理 20230922 FROM Rental_Apply__c WHERE OPDPlan__c = :opdIdList[0]]; if (nObjList.size() > 0) { Rental_Apply__c nObj = nObjList[0]; newApp.id = nObj.Id; newApp.requestShippingDay = nObj.Request_shipping_day__c; newApp.requestReturnDay = nObj.Request_return_day__c; newApp.hopeLonaerDateNum = nObj.Hope_Lonaer_date_Num__c; newApp.cancelReason = nObj.Cancel_Reason__c; newApp.loanerCancelReason = nObj.Loaner_cancel_reason__c; newApp.loanerCancelRequest = nObj.Loaner_cancel_request__c; newApp.requestDemoTime = nObj.Request_demo_time__c; newApp.requestApprovalTime = nObj.Request_approval_time__c; newApp.applicationAcceptTime = nObj.Application_accept_time__c; newApp.requestAnswerTime = nObj.Request_answer_time__c; newApp.response = nObj.Response__c; newApp.assignPerson = nObj.Assign_Person__c; newApp.oldRentalApply = nObj.Old_Rental_Apply__c; newApp.opdCloneData = s; //deloitte-zhj 20230916 start newApp.loanerMedicalStaffAWSDataId = nObj.Loaner_medical_Staff__r.AWS_Data_Id__c; newApp.rentalApplyAWSDataId = nObj.AWS_Data_Id__c; newApp.Follow_UP_OppName = nObj.Follow_UP_Opp__r.Name; newApp.RepairName = nObj.repair__r.Name; //deloitte-zhj 20230916 end return newApp; } return null; } return null; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } @AuraEnabled public static NewApply newApplyInitApp(String recordId) { NewApply newApp = new NewApply(); List opdIdList = new List(); String s=''; try { List opdList = [SELECT Id,Name,OriginalOpdPlanApplication__c FROM OPDPlan__c WHERE Id = :recordId]; if (opdList.size() > 0) { for (OPDPlan__c opdId : opdList) { opdIdList.add(opdId.OriginalOpdPlanApplication__c); } String objectName = 'Rental_Apply__c'; // 要获取字段的对象名 Map globalDescribe = Schema.getGlobalDescribe(); Schema.SObjectType objType = globalDescribe.get(objectName); if (objType != null) { Schema.DescribeSObjectResult objDescribe = objType.getDescribe(); Map fieldMap = objDescribe.fields.getMap(); s+='SELECT '; //跟进询价1的Name deloitte-zhj 20230921 // 现在,fieldMap中包含了对象的所有字段信息 for (String fieldName : fieldMap.keySet()) { if(!fieldName.equals('id')) s+=fieldName+','; } s=s.removeEnd(','); s+=' FROM Rental_Apply__c where OPDPlan__c=\''+opdIdList[0]+'\''; system.debug('SQL:'+s); List OPDPlans = Database.query(s); s=''; if(OPDPlans.size()>0){ system.debug('in!'); for (String fieldName : fieldMap.keySet()) { String formaF=fieldMap.get(fieldName).getDescribe().getName(); if(formaF != 'Id' || formaF != 'Name' || formaF != 'Status__c'){ if(OPDPlans.get(0).get(fieldName)!=null&&!OPDPlans.get(0).get(fieldName).equals('null')){ // System.debug('FieldType:'+String.valueOf(fieldMap.get(fieldName).getDescribe().getType())); if(String.valueOf(fieldMap.get(fieldName).getDescribe().getType()) == 'DATETIME'){ DateTime dt = (DateTime)OPDPlans.get(0).get(fieldName); s+=formaF+'='+dt.formatGMT('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'')+','; // System.debug('FieldType1:'+dt.formatGMT('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'')); }else{ // System.debug('FieldType2:'+OPDPlans.get(0).get(fieldName)); s+=formaF+'='+OPDPlans.get(0).get(fieldName)+','; } } } } s=s.removeEnd(','); } } // System.debug('String of s:'+s); List nObjList = [SELECT Id,Name, Request_return_day__c, // 预定归还日 Request_shipping_day__c, // 希望到货日 Hope_Lonaer_date_Num__c, // 希望借用天数 Cancel_Reason__c, // 取消理由 Loaner_cancel_reason__c, // 备品申请取消理由 Loaner_cancel_request__c, // 备品申请取消理由备注 Request_demo_time__c, // 申请时间 Request_approval_time__c, // 批准时间(申请提交时间) Application_accept_time__c, // 申请受理时间(回答时间) Request_answer_time__c, // 备品首次分配时间 Response__c, // 应答沟通 Assign_Person__c, // 分配人 Old_Rental_Apply__c, // 旧借出申请 Loaner_medical_Staff__r.AWS_Data_Id__c, //deloitte-zhj 科室负责人的AWSID 20230916 AWS_Data_Id__c, //deloitte-zhj 备品借出申请的AWSID 20230916 Follow_UP_Opp__r.Name, //deloitte-zhj 跟进询价1 20230922 repair__r.Name //deloitte-zhj 修理 20230922 FROM Rental_Apply__c WHERE OPDPlan__c = :opdIdList[0]]; if (nObjList.size() > 0) { Rental_Apply__c nObj = nObjList[0]; newApp.id = nObj.Id; newApp.requestShippingDay = nObj.Request_shipping_day__c; newApp.requestReturnDay = nObj.Request_return_day__c; newApp.hopeLonaerDateNum = nObj.Hope_Lonaer_date_Num__c; newApp.cancelReason = nObj.Cancel_Reason__c; newApp.loanerCancelReason = nObj.Loaner_cancel_reason__c; newApp.loanerCancelRequest = nObj.Loaner_cancel_request__c; newApp.requestDemoTime = nObj.Request_demo_time__c; newApp.requestApprovalTime = nObj.Request_approval_time__c; newApp.applicationAcceptTime = nObj.Application_accept_time__c; newApp.requestAnswerTime = nObj.Request_answer_time__c; newApp.response = nObj.Response__c; newApp.assignPerson = nObj.Assign_Person__c; newApp.oldRentalApply = nObj.Old_Rental_Apply__c; newApp.opdCloneData = s; //deloitte-zhj 20230916 start newApp.loanerMedicalStaffAWSDataId = nObj.Loaner_medical_Staff__r.AWS_Data_Id__c; newApp.rentalApplyAWSDataId = nObj.AWS_Data_Id__c; newApp.Follow_UP_OppName = nObj.Follow_UP_Opp__r.Name; newApp.RepairName = nObj.repair__r.Name; //deloitte-zhj 20230916 end return newApp; } return null; } return null; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } public class InitData{ @AuraEnabled public String opdPlanId; @AuraEnabled public String opdCampaignId; @AuraEnabled public String opdOpportunityId; @AuraEnabled public String opdStatus; @AuraEnabled public Decimal opdRentalApplyFlag; @AuraEnabled public String opdType; @AuraEnabled public String opdCampaignStatus; @AuraEnabled public String opdCampaignRecodeTypeId; @AuraEnabled public String opdInternalinchargeprovince; @AuraEnabled public String opdStayOrNot; @AuraEnabled public String opdOriginalOpdPlanApplication; @AuraEnabled public Boolean opdIFApproved; @AuraEnabled public String opdApprovedNo; @AuraEnabled public String opdApprovedStatus; @AuraEnabled public String opdRentalApply2; @AuraEnabled public String opdOriginalOpdPlan; @AuraEnabled public String opdCampaignName; @AuraEnabled public String opdRelatedOpportunity1ID; @AuraEnabled public String opdNoOppReason; @AuraEnabled public String opdAccountLaboratory; @AuraEnabled public String opdOCMcategoryName; @AuraEnabled public String opdOCMcategoryId; @AuraEnabled public String opdHospitalName; @AuraEnabled public String opdHospitalId; @AuraEnabled public String opdName; @AuraEnabled public Boolean opdIsJump; @AuraEnabled public String opdJumpCause; @AuraEnabled public String opdoriginalOpdRentalApply; @AuraEnabled public String opdRentalApplyName; @AuraEnabled public String opdStatusProcessState; @AuraEnabled public String opdCampaignTypeId; //2023 08 18 ZhangHeyang PIPL相关按钮修改 Start @AuraEnabled public String opdOpportunityName; //2023 08 18 ZhangHeyang PIPL相关按钮修改 End } public class UserResult { @AuraEnabled public string result; public UserResult( ) { result = 'Success'; } @AuraEnabled public string id; @AuraEnabled public Boolean isFormalStuff; @AuraEnabled public string firstName; @AuraEnabled public string lastName; @AuraEnabled public string userProvince; @AuraEnabled public string userJobCategory; } public class NewApply { @AuraEnabled public string id; @AuraEnabled public Date requestShippingDay; @AuraEnabled public Date requestReturnDay; @AuraEnabled public Decimal hopeLonaerDateNum; @AuraEnabled public string cancelReason; @AuraEnabled public string loanerCancelReason; @AuraEnabled public string loanerCancelRequest; @AuraEnabled public Datetime requestDemoTime; @AuraEnabled public Datetime requestApprovalTime; @AuraEnabled public Datetime applicationAcceptTime; @AuraEnabled public Datetime requestAnswerTime; @AuraEnabled public string response; @AuraEnabled public string assignPerson; @AuraEnabled public string oldRentalApply; @AuraEnabled public string Name; @AuraEnabled public string opdCloneData; @AuraEnabled public string loanerMedicalStaffAWSDataId; //deloitte-zhj 科室负责人的AWSID 20230916 @AuraEnabled public string rentalApplyAWSDataId; //deloitte-zhj 备品借出申请的AWSID 20230916 @AuraEnabled public string Follow_UP_OppName; //deloitte-zhj 跟进询价1 20230916 @AuraEnabled public string RepairName; //deloitte-zhj 修理 20230916 } }