public with sharing class LexNewOPDButtonOpportunityController { //新建OPD计划(询价) 询价上的按钮 @AuraEnabled public static oppLine initNewOPDButton2(String recordId){ Opportunity res = new Opportunity(); //备品智能化 2023-10-12 Update By dzk Start 获取询价下报价数量 oppLine oppLine = new oppLine(); try{ res = [SELECT Id,AccountId,Name ,StageName FROM Opportunity WHERE Id=:recordId]; List quoteList = [SELECT Id FROM Quote WHERE OpportunityId=:recordId]; oppLine.opp = res; oppLine.quoteNum = quoteList.size(); return oppLine; } //备品智能化 2023-10-12 Update By dzk End 获取询价下报价数量 catch(Exception e){ System.debug(LoggingLevel.INFO, '*** e: ' + e); return null; } } //取消按钮 @AuraEnabled public static OPDPlan__c initCancleSumbit(String recordId){ OPDPlan__c res = new OPDPlan__c(); try{ res = [SELECT Id,Status__c,Name FROM OPDPlan__c WHERE Id=:recordId]; return res; } catch(Exception e){ System.debug(LoggingLevel.INFO, '*** e: ' + e); return null; } } //OPD报告 @AuraEnabled public static OPDPlan__c initReportSubmit(String recordId){ OPDPlan__c res = new OPDPlan__c(); try{ res = [SELECT Id,Status__c,Name,Rental_Apply2_Status_New__c,Rental_Apply1_Status_New__c, Rental_Apply3_Status_New__c,Rental_Apply4_Status_New__c,Rental_Apply5_Status_New__c, Related_Opportunity1_ID__c,Related_Opportunity2_ID__c,Activity_Type2__c, Account_Laboratory__c,OCM_category_ID__c,OCM_category_Name__c,HospitalID__c, HospitalName__c,Rental_Apply2__c FROM OPDPlan__c WHERE Id=:recordId]; return res; } catch(Exception e){ System.debug(LoggingLevel.INFO, '*** e: ' + e); return null; } } //备品智能化 ADD By dzk Start 2023-10-12 新建OPD计划(询价)获取最新报价的报价行项目 @AuraEnabled(cacheable=true) public static List initGetQuote(String recordId){ try{ List proLineList = new List(); Opportunity opp = [SELECT Id,Estimation_Id__c FROM Opportunity WHERE Id =: recordId]; Id productOlympusProductsRecordTypeId = Schema.SObjectType.Product2.getRecordTypeInfosByDeveloperName().get('OlympusProducts').getRecordTypeId(); String query = 'SELECT Id,Quantity,Product2.Fixture_Model_No_T__c, Product2.Name, Product2.ProductCode, Product2.Key_product_147P__c, OppIsLendMark__c, Product2.RentalSubject__c, QuoteId,Quote.Quote_No__c FROM QuoteLineItem'; query += ' WHERE Product2.RecordTypeId = \'' + productOlympusProductsRecordTypeId + '\''; query += ' AND Product2.Fixture_Model_No_F__c != null'; query += ' AND QuoteId = \'' + opp.Estimation_Id__c + '\''; query += ' AND Product2.Category5__c Not IN (\'虚拟\') '; query += ' AND Product2.IsActive = true'; query += ' AND Product2.Loaner_categoryII__c NOT IN (\'模型\') '; query += ' AND Product2.RentalSubject__c = true'; query += ' AND ((Product2.SFDA_Status__c Not IN (\'停止\') OR Product2.Manual_Entry__c = true) '; query += ' OR (Product2.Manual_Entry__c = false AND Product2.SFDA_Status__c IN (\'停止\') AND Product2.Loaner_categoryII__c IN (\'台车\',\'监视器\',\'录像设备\')))'; System.debug('query--------' + query); List quoteLineItemList = Database.query(query); for(QuoteLineItem quoteItem : quoteLineItemList){ ProLine pro = new ProLine(); pro.Quantity = Integer.valueOf(quoteItem.Quantity); pro.ProductName = quoteItem.Product2.Name; pro.ProductCode = quoteItem.Product2.ProductCode; pro.ProductModel = quoteItem.Product2.Fixture_Model_No_T__c; pro.QuoteNo = quoteItem.Quote.Quote_No__c; pro.QuoteId = quoteItem.QuoteId; if(String.isNotBlank(quoteItem.Product2.Key_product_147P__c)){ pro.FixtureModel = quoteItem.Product2.Key_product_147P__c.substring(3); } proLineList.add(pro); } return proLineList; } catch(Exception e){ System.debug(LoggingLevel.INFO, '*** e: ' + e); return null; } } //备品智能化 ADD By dzk End 2023-10-12 新建OPD计划(询价)获取最新报价的报价行项目 //备品智能化 ADD By dzk Start 2023-10-12 新建OPD计划(询价)保存,对应报价行项目进行标记 @AuraEnabled public static String createProductTags(String records, String recordId){ try{ Map quoteLineMap = new Map(); Set quoteIdSet = new Set(); List ProLineList = (List)System.JSON.deserialize(records, List.class); for(ProLine pro : ProLineList){ quoteLineMap.put(pro.ProductCode,TRUE); } List quoteList = [SELECT Id FROM Quote WHERE OpportunityId =: recordId]; for(Quote quote : quoteList){ quoteIdSet.add(quote.Id); } //取得符合备品借出条件的产品信息 List quoteLineItemList = [SELECT Id, Product2.ProductCode, OppIsLendMark__c //是否借出标记 FROM QuoteLineItem WHERE QuoteId =: quoteIdSet]; System.debug('quoteLineItemList--------' + quoteLineItemList); // 更新报价行项目上,是否借出标记 for(QuoteLineItem quoteItem : quoteLineItemList){ if(ProLineList.size() == 0){ quoteItem.OppIsLendMark__c = false; }else if(quoteLineMap.containsKey(quoteItem.Product2.ProductCode)){ quoteItem.OppIsLendMark__c = true; }else{ quoteItem.OppIsLendMark__c = false; } } update quoteLineItemList; return 'Success'; } catch(Exception e){ System.debug(LoggingLevel.INFO, '*** e: ' + e); return null; } } //zzm 20240204 只有询价中的才可以 新建opd计划 start @AuraEnabled(cacheable=true) public static String geOppStatus(String recordId){ try{ List opp = [SELECT Id,StageName__c FROM Opportunity WHERE Id =: recordId]; if(opp.size()>0) { return opp[0].StageName__c; } return ''; } catch(Exception e){ System.debug(LoggingLevel.INFO, '*** e: ' + e); return null; } } //zzm 20240204 只有询价中的才可以 新建opd计划 END //备品智能化 ADD By dzk Start 2023-10-12 新建OPD计划(询价)保存,对应报价行项目进行标记 public class ProLine { @AuraEnabled public Integer Quantity { get; set; } @AuraEnabled public String ProductName { get; set; } @AuraEnabled public String ProductCode { get; set; } @AuraEnabled public String ProductModel { get; set; } @AuraEnabled public String QuoteNo { get; set; } @AuraEnabled public String QuoteId { get; set; } @AuraEnabled public String FixtureModel { get; set; } } public class oppLine { @AuraEnabled public Opportunity opp { get; set; } @AuraEnabled public Integer quoteNum { get; set; } } //备品智能化 ADD By dzk End 2023-10-12 }