public without sharing class RetrospectiveWeeklyReportController{ @AuraEnabled public List reports{get;set;} @AuraEnabled public Map>> allselectlist{get;set;} @AuraEnabled public Map fieldsMap{get;set;} @AuraEnabled public Map>> docmap{get;set;} @AuraEnabled public List> doctorList{get;set;} @AuraEnabled public String UserProType{get;set;} @AuraEnabled public Map AgencyReportMap{get;set;} @AuraEnabled public Map PIConfig{get;set;} public RetrospectiveWeeklyReportController() { } public void UserDoin(){ User UserProTypec = LightningUtil.loginUserId(); this.UserProType = ''; this.UserProType = UserProTypec.UserPro_Type__c; } public void setalldata() { /*** create allselectlist ***/ this.allselectlist = new Map>>(); // 用来存放工作会记录 和 效果/进度 this.AgencyReportMap = new Map(); Map>> alldata = new Map>>(); system.debug('UserInfo.getUserId()11111111111================>'+UserInfo.getUserId()); User login_user_id = [select UserPro_Type__c, ContactId,Contact.Name from User where id =: UserInfo.getUserId()]; // プルダウン初期値の空白 List> tmp = new List>(); Map space = new Map(); space.put('label', login_user_id.Contact.name); space.put('value', login_user_id.ContactId); space.put('selected', 'true'); tmp.add(space); // 代理店担当者 AgencyPerson__c List agency_person_data = LightningUtil.selectAgencyPerson03(); for(Contact var : agency_person_data) { Map om = new Map(); om.put('label', var.Name); om.put('value', var.Id); om.put('selected', 'false'); tmp.add(om); } this.allselectlist.put('AgencyPerson__c', tmp); system.debug('tmp================>'+tmp); //经销商人员 List> tmp01 = new List>(); Map space01 = new Map(); space01.put('label', ''); space01.put('value', ''); space01.put('selected', 'true'); tmp01.add(space01); // 经销商人员 DealerPersonnel__c List agency_person_data01 = LightningUtil.selectAgencyPerson02(); system.debug('agency_person_data01================>'+agency_person_data01); for(Contact var : agency_person_data01) { Map om01 = new Map(); om01.put('label', var.Name); om01.put('value', var.Id); om01.put('selected', 'false'); tmp01.add(om01); } this.allselectlist.put('DealerPersonnel__c', tmp01); // 科室分类 Department_Cateogy__c AgencyReportMap this.allselectlist.put('Department_Cateogy__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','Department_Cateogy__c')); // 工作记录会 WorkRecord__c this.allselectlist.put('WorkRecord__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','WorkRecord__c')); // 效果进度 EffectProgress__c // this.allselectlist.put('EffectProgress__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','EffectProgress__c')); // 产品分区 ET 或者 ENG login_user_id // if(login_user_id.UserPro_Type__c == 'ET') this.allselectlist.put('ProductClassification__c', RetrospectiveWeeklyReportController.getPicklistValues1('Agency_Report__c','ProductClassification__c')); // 科室同类耗材月使用量 ConsumptionOfConsumables__c this.allselectlist.put('ConsumptionOfConsumables__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','ConsumptionOfConsumables__c')); //阶段 StageName__c this.allselectlist.put('StageName__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Opportunity__c','StageName__c')); //其他品牌耗材 this.allselectlist.put('WarlockClassification__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','WarlockClassification__c')); //产品类别 this.allselectlist.put('ProductCcategory__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','ProductCcategory__c')); //产品类别 this.allselectlist.put('productCategories__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','productCategories__c')); //其他品牌耗材 this.allselectlist.put('warlocksNumber__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','warlocksNumber__c')); //产品类别 this.allselectlist.put('WorkMark__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','WorkMark__c')); // 見出し設定 this.fieldsMap = new Map(); this.fieldsMap = this.getfiledsmap(); this.PIConfig = new Map(); this.PIConfig.put('staticResourceAgencyContact', JSON.serialize(PIHelper.getPIIntegrationInfo('Agency_Contact__c'))); } public static List> getPicklistValues(String objstr, String fld){ List> options = new List>(); Map space = new Map(); space.put('label', ''); space.put('value', ''); space.put('selected', 'true'); options.add(space); Schema.sObjectType objType = Schema.getGlobalDescribe().get(objstr); Schema.DescribeSObjectResult objDescribe = objType.getDescribe(); map fieldMap = objDescribe.fields.getMap(); list values = fieldMap.get(fld).getDescribe().getPickListValues(); for (Schema.PicklistEntry a : values) { if (!a.isActive()) continue; Map ses = new Map(); ses.put('label', a.getLabel()); ses.put('value', a.getValue()); ses.put('selected', 'false'); options.add(ses); } return options; } public static List> getPicklistValues1(String objstr, String fld){ List> options = new List>(); Map space = new Map(); User loginUserId = LightningUtil.loginUserId(); Boolean fag = false; if(loginUserId.UserPro_Type__c == 'ET'){ fag = true; } space.put('label', ''); space.put('value', ''); space.put('selected', 'true'); options.add(space); Schema.sObjectType objType = Schema.getGlobalDescribe().get(objstr); Schema.DescribeSObjectResult objDescribe = objType.getDescribe(); map fieldMap = objDescribe.fields.getMap(); list values = fieldMap.get(fld).getDescribe().getPickListValues(); for (Schema.PicklistEntry a : values) { if (!a.isActive()) continue; Map ses = new Map(); if(fag){ if(a.getValue() != '腹腔镜手术'){ ses.put('label', a.getLabel()); ses.put('value', a.getValue()); ses.put('selected', 'false'); options.add(ses); } }else{ if(a.getValue() == '腹腔镜手术'){ ses.put('label', a.getLabel()); ses.put('value', a.getValue()); ses.put('selected', 'false'); options.add(ses); } } } return options; } public Map getfiledsmap() { Map schemaMap = Schema.getGlobalDescribe(); Map> typemap = new Map> (); // Agency_Opportunity__c 经销商询价 Map fieldMap = schemaMap.get('Agency_Opportunity__c').getDescribe().fields.getMap(); Map mappingmap = new Map(); for(Schema.SObjectField sfield : fieldMap.Values()) { Schema.describefieldresult dfield = sfield.getDescribe(); String lab = ''; lab = dfield.getLabel(); mappingmap.put(dfield.name,lab); } // Agency_Report__c 周报明细 fieldMap = schemaMap.get('Agency_Report__c').getDescribe().fields.getMap(); for(Schema.SObjectField sfield : fieldMap.Values()) { Schema.describefieldresult dfield = sfield.getDescribe(); String lab = ''; lab = dfield.getLabel(); mappingmap.put(dfield.name,lab); } return mappingmap; } @RemoteAction @AuraEnabled public static RetrospectiveWeeklyReportController getalldata(){ RetrospectiveWeeklyReportController li = new RetrospectiveWeeklyReportController(); li.UserDoin(); li.setalldata(); return li; } @RemoteAction @AuraEnabled public static ProductTypes__c getProduct(String id){ return [select Department_Cateogy__c, OPD_Flg__c, Id, SIS_Flg__c from ProductTypes__c where Id =:id]; } @RemoteAction @AuraEnabled public static String createReportHeader(String name, String s_date, String s_agency, String head_key){ Agency_Report_Header__c agency_report_header = makeReportHeader(name, s_date, s_agency, head_key); agency_report_header = LightningUtil.upsertAgencyReportHeader(agency_report_header); return agency_report_header.Id; } //新建周报一览 public static Agency_Report_Header__c makeReportHeader(String name, String s_date, String s_agency, String head_key){ User login_user_id = LightningUtil.loginUserId(); Date week = Date.valueOf(s_date); Agency_Report_Header__c agency_report_header = new Agency_Report_Header__c(); agency_report_header.Name = name + ' (' + s_date + ')'; agency_report_header.HeaderInputKey__c = head_key; agency_report_header.Week__c = week; agency_report_header.Agency_Person2__c = s_agency; agency_report_header.WeeklyReportClassification__c = login_user_id.UserPro_Type__c; OlympusCalendar__c olympus_calendar = [select Id,Date__c from OlympusCalendar__c where Date__c=:week]; String olympus_calendar_id = olympus_calendar.Id; if (olympus_calendar_id != '') { agency_report_header.OlympusDate__c = olympus_calendar_id; } return agency_report_header; } @RemoteAction @AuraEnabled public static List getHospitalList(String hospital_name) { User login_user_id = LightningUtil.loginUserId(); String SignInId = UserInfo.getUserId(); // List conStrList = [select AccountId from contact where id in (select ContactId from User where id =: SignInId)]; Contact conStrList = [select AccountId from contact where id in (select ContactId from User where id =: SignInId)]; system.debug('conStrListconStrListr===============>'+conStrList); String strAgencyId =conStrList.AccountId; // for(Contact conStr : conStrList){ // strAgencyId = conStr.AccountId; // } system.debug('strAgencyIdstrAgencyId==============>'+strAgencyId); hospital_name = '%' + hospital_name.trim() + '%'; if(login_user_id.UserPro_Type__c == 'ENG'){ return [select Hospital_Name_readonly__c, Id, Hospital__c from Agency_Hospital_Link__c where Agency__c =: strAgencyId and Hospital_Name_readonly__c like :hospital_name and AgencyHos_ENG__c = true]; }else { return [select Hospital_Name_readonly__c, Id, Hospital__c from Agency_Hospital_Link__c where Agency__c =: strAgencyId and Hospital_Name_readonly__c like :hospital_name and AgencyHos_ET__c = true]; } } //模糊查询使用产品1 @RemoteAction @AuraEnabled public static List getUseProduct1(String UseProduct1Name,String select_ProductClassification) { String UseProduct1Name01 = '%' + UseProduct1Name.trim() + '%'; List Product2List = [select Id, Name from Product2 where Category3__c =: select_ProductClassification AND Name like :UseProduct1Name01]; return Product2List; } @RemoteAction @AuraEnabled public static List> getDoctorList(String hospital_id){ List> ret = new List>(); Map space = new Map(); space.put('label', ''); space.put('value', ''); space.put('selected', 'true'); ret.add(space); Agency_Hospital_Link__c ahl = [select Hospital__c from Agency_Hospital_Link__c where id = :hospital_id]; List doctor_list = [select id,Name,Doctor_Division1__c, AWS_Data_Id__c,// PI改造 By Bright 20220328 Type__c,Agency_Hospital__c FROM Agency_Contact__c WHERE Hospital_ID18__c=:ahl.Hospital__c order by Name]; for (Agency_Contact__c row : doctor_list) { Map tmp = new Map(); tmp.put('label', row.Name); tmp.put('value', row.Id); tmp.put('selected', 'false'); tmp.put('Doctor_Division1__c', row.Doctor_Division1__c); tmp.put('AWS_Data_Id__c', row.AWS_Data_Id__c);// PI改造 By Bright 20220328 ret.add(tmp); } return ret; } @RemoteAction @AuraEnabled public static String saveAgencyReport(String Department_Cateogy,Decimal ConsumptionOfConsumables, Boolean WorkMark,Decimal warlocksNumber,String DealerPersonnel,String ProductCcategory,String productCategories ,String WarlockClassification, String ProductClassification,String WorkRecord,String EffectProgress, String Agency_Report_Header, String Agency_Hospital, String Person_In_Charge2, String doctor, String Submit_date, String UseProduct1, String UseProduct2, String UseProduct3, String StageName, String oppAmount, String oppOCMPrice, String Close_Forecasted_Date, String Report_Date) { Department_Cateogy = GetDepartment_Cateogy(Department_Cateogy); system.debug('Department_Cateogy+++'+Department_Cateogy); Agency_Report__c agency_report = makeAgencyReport(Department_Cateogy,ConsumptionOfConsumables, WorkMark,warlocksNumber,DealerPersonnel,ProductCcategory,productCategories,WarlockClassification,ProductClassification, WorkRecord, EffectProgress,Agency_Report_Header, Agency_Hospital, Person_In_Charge2, doctor, Submit_date, UseProduct1, UseProduct2, UseProduct3, StageName, oppAmount, oppOCMPrice, Close_Forecasted_Date, Report_Date); agency_report = insertAgencyReport(agency_report); return agency_report.Id; } public static Agency_Report__c makeAgencyReport(String Department_Cateogy,Decimal ConsumptionOfConsumables, boolean WorkMark,Decimal warlocksNumber, String DealerPersonnel,String ProductCcategory,String productCategories,String WarlockClassification, String ProductClassification, String WorkRecord, String EffectProgress,String Agency_Report_Header, String Agency_Hospital, String Person_In_Charge2, String doctor, String Submit_date, String UseProduct1, String UseProduct2, String UseProduct3, String StageName, String oppAmount, String oppOCMPrice, String Close_Forecasted_Date, String Report_Date) { Agency_Report__c agency_report = new Agency_Report__c(); Date week = Date.valueOf(Submit_date); agency_report.Submit_date__c = week; Date reportDate = Date.valueOf(Report_Date); agency_report.Report_Date__c = reportDate; // MaxActivityDate__c 更新 if (Person_In_Charge2 != '') { if(Person_In_Charge2.contains(';')){ Person_In_Charge2 = Person_In_Charge2.split(';')[0]; } agency_report.Person_In_Charge2__c = Person_In_Charge2; } else { agency_report.Person_In_Charge2__c = null; } //经销商人员 if (DealerPersonnel != '') { if(DealerPersonnel.contains(';')){ DealerPersonnel = DealerPersonnel.split(';')[0]; } agency_report.DealerPersonnel__c = DealerPersonnel; } else { agency_report.DealerPersonnel__c = null; } //更新经销商医院的 最近周报跟新日 , if (Agency_Hospital != '') { LightningUtil.updateAccMaxActivityDate(Agency_Hospital, week); } if (doctor != '') { agency_report.doctor2__c = doctor; } else { agency_report.doctor2__c = null; } if (Department_Cateogy != '') { agency_report.Department_Cateogy__c = Department_Cateogy; } if (ConsumptionOfConsumables != null) { agency_report.ConsumptionOfConsumables__c = ConsumptionOfConsumables; } if (WorkRecord != '') { agency_report.WorkRecord__c = WorkRecord; } // system.debug('EffectProgress==================>'+EffectProgress); if (EffectProgress != '') { agency_report.EffectProgress__c = EffectProgress; } // ET if (ProductClassification != '') { agency_report.ProductClassification__c = ProductClassification; } if (Agency_Report_Header != '') { agency_report.Agency_Report_Header__c = Agency_Report_Header; } if (Agency_Hospital != '') { agency_report.Agency_Hospital__c = Agency_Hospital; } if (UseProduct1 != '') { agency_report.UseProduct1__c = UseProduct1; } if (UseProduct2 != '') { agency_report.UseProduct2__c = UseProduct2; } if (UseProduct3 != '') { agency_report.UseProduct3__c = UseProduct3; } if (WarlockClassification != '') { agency_report.WarlockClassification__c = WarlockClassification; } system.debug('ProductCcategory==================>'+ProductCcategory); if (ProductCcategory != '') { agency_report.ProductCcategory__c = ProductCcategory; } system.debug('productCategories==================>'+productCategories); if (productCategories != '') { agency_report.productCategories__c = productCategories; } if (warlocksNumber != null) { agency_report.warlocksNumber__c = warlocksNumber; } if (WorkMark != false) { agency_report.WorkMark__c = WorkMark; } return agency_report; } //新建方法 public static Agency_Report__c insertAgencyReport(Agency_Report__c data) { if (String.isBlank(data.Hospital__c)) { system.debug('data.Agency_Hospital__c+++'+data.Agency_Hospital__c); List agency_hospital_link = [select Id, Hospital__c from Agency_Hospital_Link__c where Id=:data.Agency_Hospital__c]; system.debug('agency_hospital_link+++'+agency_hospital_link); data.Hospital__c = agency_hospital_link[0].Hospital__c; } if (String.isBlank(data.Department_Class__c)) { system.debug('data.Department_Cateogy__c+++'+data.Department_Cateogy__c); String record_type_id = LightningUtil.getRecordTypeId(data.Department_Cateogy__c); system.debug('RecordTypeId+++'+record_type_id); List account = [select Id, RecordTypeId from account where Hospital_Department_Class__c=:data.Hospital__c and RecordTypeId=:record_type_id]; system.debug('account+++'+account); data.Department_Class__c = account[0].Id; } User userPro = LightningUtil.loginUserId(); data.WeeklyReportClassification__c = userPro.UserPro_Type__c; system.debug('data==================>'+data); insert data; return data; } @RemoteAction @AuraEnabled public static String editAgencyReport(String Agency_Report_Id, String Department_Cateogy, Decimal ConsumptionOfConsumables,boolean WorkMark,Decimal warlocksNumber, String DealerPersonnel,String WarlockClassification,String ProductCcategory,String productCategories,String ProductClassification, String EffectProgress, String WorkRecord, String Agency_Report_Header, String Agency_Hospital, String Person_In_Charge2, String doctor, String Submit_date, String UseProduct1, String UseProduct2, String UseProduct3, String Report_Date) { if (String.isBlank(Agency_Report_Id)) { return null; } Agency_Report__c agency_report = [select Id, Name, Department_Cateogy__c, ConsumptionOfConsumables__c, WorkRecord__c,WarlockClassification__c, ProductCcategory__c, productCategories__c,warlocksNumber__c,WorkMark__c,ProductClassification__c,DealerPersonnel__c, Agency_Report_Header__c,Agency_Hospital__c,UseProduct1__c, UseProduct2__c, UseProduct3__c, Person_In_Charge2__c,doctor2__c,Submit_date__c,Report_Date__c from Agency_Report__c where id=:Agency_Report_Id]; Date week = Date.valueOf(Submit_date); agency_report.Submit_date__c = week; Date reportDate = Date.valueOf(Report_Date); agency_report.Report_Date__c = reportDate; // MaxActivityDate__c 更新 if (Person_In_Charge2 != '') { agency_report.Person_In_Charge2__c = Person_In_Charge2; } else { agency_report.Person_In_Charge2__c = null; } //经销商人员 if (DealerPersonnel != '') { agency_report.DealerPersonnel__c = DealerPersonnel; } else { agency_report.DealerPersonnel__c = null; } if (Agency_Hospital != '') { LightningUtil.updateAccMaxActivityDate(Agency_Hospital, week); } // WRITE Agency Report__c String EffectProgress, ConsumptionOfConsumables__c WorkMark__c,warlocksNumber__c, if (doctor != '') { agency_report.doctor2__c = doctor; } else { agency_report.doctor2__c = null; } if (Department_Cateogy != '') { agency_report.Department_Cateogy__c = Department_Cateogy; } else { agency_report.Department_Cateogy__c = null; } if (WorkRecord != '') { agency_report.WorkRecord__c = WorkRecord; } else { agency_report.WorkRecord__c = null; } if (ConsumptionOfConsumables != null) { agency_report.ConsumptionOfConsumables__c = ConsumptionOfConsumables; } else { agency_report.ConsumptionOfConsumables__c = null; } if (EffectProgress != '') { agency_report.EffectProgress__c = EffectProgress; } else { agency_report.EffectProgress__c = null; } if (ProductClassification != '') { agency_report.ProductClassification__c = ProductClassification; } else { agency_report.ProductClassification__c = null; } if (Agency_Hospital != '') { agency_report.Agency_Hospital__c = Agency_Hospital; } else { agency_report.Agency_Hospital__c = null; } if (UseProduct1 != '') { agency_report.UseProduct1__c = UseProduct1; } else { agency_report.UseProduct1__c = null; } if (UseProduct2 != '') { agency_report.UseProduct2__c = UseProduct2; } else { agency_report.UseProduct2__c = null; } if (UseProduct3 != '') { agency_report.UseProduct3__c = UseProduct3; } else { agency_report.UseProduct3__c = null; } if (ProductCcategory != '') { agency_report.ProductCcategory__c = ProductCcategory; } else { agency_report.ProductCcategory__c = null; } if (productCategories != '') { agency_report.productCategories__c = productCategories; } else { agency_report.productCategories__c = null; } if (WarlockClassification != '') { agency_report.WarlockClassification__c = WarlockClassification; } else { agency_report.WarlockClassification__c = null; } if (WorkMark != false) { agency_report.WorkMark__c = WorkMark; } else { agency_report.WorkMark__c = false; } if (warlocksNumber != null) { agency_report.warlocksNumber__c = warlocksNumber; } else { agency_report.warlocksNumber__c = null; } agency_report = LightningUtil.updateAgencyReport(agency_report); return agency_report.Id; } @RemoteAction @AuraEnabled public static List selectOpportunityByIdAndHospitalLinkId(String opportunity_id, String agency_hospital_link_id) { List ret = new List(); ret = LightningUtil.selectOpportunityByIdAndHospitalLinkId(opportunity_id, agency_hospital_link_id); return ret; } @RemoteAction @AuraEnabled public static RetrospectiveWeeklyReportController getReports(String date_str, String person_str) { RetrospectiveWeeklyReportController li = new RetrospectiveWeeklyReportController(); li.get_reports(date_str, person_str); return li; } public void get_reports(String date_str, String person_str) { Date week = Date.valueOf(date_str); this.reports = LightningUtil.selectAgencyReport01(week, person_str); } @RemoteAction @AuraEnabled public static List getReportsById(String report_id) { system.debug('==report_id================>'+report_id); List ret = new List(); ret = LightningUtil.selectAgencyReportById01(report_id); system.debug('==Agency_Report_Header__r.WeeklyReportClassification__c=================>'+ret); return ret; } // 批量添加周报by vivek start @RemoteAction @AuraEnabled public static List getReportsByDate(String date1, String date2) { Date date1_date = Date.valueOf(date1); Date date2_date = Date.valueOf(date2); RetrospectiveWeeklyReportController li = new RetrospectiveWeeklyReportController(); List conMList = LightningUtil.selectAgencyPerson03(); return LightningUtil.selectMAgencyReport01(date1_date, date2_date, conMList); } public List selectMAgencyPerson() { String login_user_id = UserInfo.getUserId(); return [select id, Name, Agency_User__c from contact]; } @AuraEnabled public static String processData(String fileData,String sobjectName,List fields) { String errorMag = ''; System.debug('fileData=================>'+fileData); // 创建周报 try{ if(fileData!=null){ String[] fileLines = new String[]{}; fileLines = fileData.split('\n'); // 担当名称的list List nameList = new List(); // 报告日的list List dateList = new List(); // List s_dateList = new List(); // 导入的数据 List> inputList = new List>(); // 经销商医院名称list List ahlNameList = new List(); // 产品 List Product2NameList = new List(); // 效果进度 List EffectProgressList = new List(); // 术士分类 List OtherBrandConsumablesList = new List(); // 其他品牌耗材使用 List ProductCcategoryList = new List(); // 其他品牌耗材使用 List productCategoriesList = new List(); // 科室Set // Set departmentSet = new Set(); // 经销商询价名称list // List ahlOppNameList = new List(); //for content for (Integer i=1,j=fileLines.size();i inputvalues = new List(); inputvalues = fileLines[i].split(','); system.debug('inputvalues:::::::'+inputvalues); if(inputvalues != null){ if(inputvalues[1] == '' || inputvalues[1] == null){ errorMag += 'error1 第'+i+'行数据担当不能为空'; errorMag += '='; } if(inputvalues[2] == '' || inputvalues[2] == null){ errorMag += 'error1 第'+i+'行数据活动日不能为空'; errorMag += '='; } if(inputvalues[3] == '' || inputvalues[3] == null){ errorMag += 'error1 第'+i+'行数据医院不能为空'; errorMag += '='; } if(inputvalues[4] == '' || inputvalues[4] == null){ errorMag += 'error1 第'+i+'行数据科室不能为空'; errorMag += '='; } String departmentstr = GetDepartment_Cateogy(inputvalues[4]); if(departmentstr == 'no' && inputvalues[4] != '' && inputvalues[4] != null){ errorMag += 'error3 第'+i+'行数据科室选项列表的值'+inputvalues[4]+'不存在'; errorMag += '='; } if(inputvalues[5] == '' || inputvalues[5] == null){ errorMag += 'error1 第'+i+'行数据经销商人员不能为空'; errorMag += '='; } if(inputvalues[6] == '' || inputvalues[6] == null){ errorMag += 'error1 第'+i+'行数据工作记录不能为空'; errorMag += '='; } boolean purposeType = GetPurposeType(inputvalues[6]); if(!purposeType && inputvalues[6] != '' && inputvalues[6] != null){ errorMag += 'error3 第'+i+'行数据工作记录选项列表的值'+inputvalues[6]+'不存在'; errorMag += '='; } if(inputvalues[7] == '' || inputvalues[7] == null){ errorMag += 'error1 第'+i+'行数据医院人员不能为空'; errorMag += '='; } if(inputvalues[8] == '' || inputvalues[8] == null){ errorMag += 'error1 第'+i+'行数据产品分类(第三分类)不能为空'; errorMag += '='; } if(inputvalues[9] == '' || inputvalues[9] == null){ errorMag += 'error1 第'+i+'行数据使用产品1不能为空'; errorMag += '='; } if((inputvalues[10] != '' && inputvalues[10] != null)&& inputvalues[9] == inputvalues[10]){ errorMag += 'error1 第'+i+'行数据使用产品1和使用产品2的值不能重复'; errorMag += '='; } if((inputvalues[11] != '' && inputvalues[11] != null)&& inputvalues[9] == inputvalues[11]){ errorMag += 'error1 第'+i+'行数据使用产品1和使用产品3的值不能重复'; errorMag += '='; } if((inputvalues[10] != '' && inputvalues[10] != null) && (inputvalues[11] != '' && inputvalues[11] != null) && inputvalues[10] == inputvalues[11]){ errorMag += 'error1 第'+i+'行数据使用产品2和使用产品3的值不能重复'; errorMag += '='; } if(inputvalues[12] == '' || inputvalues[12] == null){ errorMag += 'error1 第'+i+'行数据效果/进度不能为空'; errorMag += '='; } if(inputvalues[13] == '' || inputvalues[13] == null){ errorMag += 'error1 第'+i+'行数据科室同类耗材月使用量不能为空'; errorMag += '='; } boolean wanked = wncc(inputvalues[13]); if(!wanked && inputvalues[13] == '' || inputvalues[13] == null){ errorMag += 'error3 第'+i+'行数据错误,请检查你的科室同类耗材月使用量!'; errorMag += '='; } //暂时注掉因为ENG的术士分类为空所以暂时注掉 // if(inputvalues[14] == '' || inputvalues[14] == null){ // errorMag += 'error1 第'+i+'行数据其他品牌耗材使用不能为空'; // errorMag += '='; // } if(inputvalues[15] == '' || inputvalues[15] == null){ errorMag += 'error1 第'+i+'行数据已采用其他产品不能为空'; errorMag += '='; } //暂时注掉因为ET的其他品牌产品类别没有数据 // if(inputvalues[16] == '' || inputvalues[16] == null){ // errorMag += 'error1 第'+i+'行数据术士使用产品对应数量不能为空'; // errorMag += '='; // } if(inputvalues[17] == '' || inputvalues[17] == null){ errorMag += 'error1 第'+i+'行数据术产品用量不能为空'; errorMag += '='; } boolean wankeds = wncc(inputvalues[17]); if(!wankeds && inputvalues[17] == '' || inputvalues[17] == null){ errorMag += 'error3 第'+i+'行数据错误,请检查你的产品用量!'; errorMag += '='; } system.debug('inputvalues[1]====='+inputvalues[1]); system.debug('inputvalues[2]====='+inputvalues[2]); system.debug('inputvalues[3]====='+inputvalues[3]); system.debug('inputvalues[4]====='+inputvalues[4]); system.debug('inputvalues[5]====='+inputvalues[5]); system.debug('inputvalues[6]====='+inputvalues[6]); system.debug('inputvalues[7]====='+inputvalues[7]); system.debug('inputvalues[8]====='+inputvalues[8]); system.debug('inputvalues[9]====='+inputvalues[9]); system.debug('inputvalues[10]====='+inputvalues[10]); system.debug('inputvalues[11]====='+inputvalues[11]); system.debug('inputvalues[12]====='+inputvalues[12]); system.debug('inputvalues[13]====='+inputvalues[13]); system.debug('inputvalues[14]====='+inputvalues[14]); system.debug('inputvalues[15]====='+inputvalues[15]); system.debug('inputvalues[16]====='+inputvalues[16]); system.debug('inputvalues[17]====='+inputvalues[17]); system.debug('inputvalues[18]====='+inputvalues[18]); //担当 nameList.add(inputvalues[1]); //报告日 dateList.add(Date.valueOf(inputvalues[2].replace('/','-'))); //经销商医院 ahlNameList.add(inputvalues[3]); //使用产品1 Product2NameList.add(inputvalues[9]); //使用产品2 Product2NameList.add(inputvalues[10]); //使用产品3 Product2NameList.add(inputvalues[11]); //效果进度 EffectProgressList.add(inputvalues[12]); //术士分类 OtherBrandConsumablesList.add(inputvalues[14]); //已采用其他品牌 ProductCcategoryList.add(inputvalues[15]); //其他品牌产品类别 productCategoriesList.add(inputvalues[16]); //科室 // departmentSet.add('%'+GetDepartment_Cateogy(inputvalues[4])+'%'+'-'+GetEPurposeType(inputvalues[10])); //导入的数据 inputList.add(inputvalues); } } // 担当名称匹配的map Map nameIdMap = new Map(); Map nameConMap = new Map(); // 经销商医院名称匹配的map Map ahlMap = new Map(); // 经销商医院的ocsm医院id的list List ahlOcsmIdList = new List(); // 经销商医院id的List List ahlIdList = new List(); // 使用产品1,2,3 Map UseProductMap = new Map(); // 效果进度 Map EffectProgressMap = new Map(); // 术士分类 Map OtherBrandConsumablesMap = new Map(); // 已采用其他产品 Map ProductCcategorynMap = new Map(); // 其他品牌产品类别 Map productCategoriesMap = new Map(); // 使用产品id的List List UseProductIdList = new List(); // 效果进度id的List List EffectProgressIdList = new List(); // 术士分类id的List List OtherBrandConsumablesIdList = new List(); // 已采用其他品牌id的List List ProductCcategorynIdList = new List(); // 其他品牌产品类别id的List productCategoriesMap List productCategoriesIdList = new List(); // 产品区分的map Map protypeMap = new Map(); // 获取每周第一天的map Map dateMap = new Map(); // 根据日期获取olympus日历id的map Map dateIdMap = new Map(); // 根据经销商医院的ocsm医院获取的所有.客户人员的信息的名称和id的map DealerPersonnelMap Map doctor2Map = new Map(); //存放经销商人员的Map Map DealerPersonnelMap = new Map(); // 经销商询价的map Map aoMap = new Map(); List conList = LightningUtil.selectAgencyPerson03(); List olympusDateList = [select Id,Date__c,FirstDayOfWeek__c,DayOfTheWeek__c from OlympusCalendar__c where Date__c= :dateList ]; List ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where name = :ahlNameList and Agency_Campaign_Obj__c = true]; List pr2List = [select id,name from Product2 where name in:Product2NameList]; List FieldClassification1List = [select id,EffectProgress__c from FieldClassification__c where EffectProgress__c in :EffectProgressList]; List FieldClassification2List = [select id,WarlockClassification__c from FieldClassification__c where WarlockClassification__c in :OtherBrandConsumablesList]; List FieldClassification3List = [select id,ProductCcategory__c from FieldClassification__c where ProductCcategory__c in :ProductCcategoryList]; List FieldClassification4List = [select id,productCategories__c from FieldClassification__c where productCategories__c in :productCategoriesList]; for(OlympusCalendar__c olym : olympusDateList){ if(olym.DayOfTheWeek__c == 'Sun'){ dateMap.put(olym.Date__c, olym.Date__c.addDays(1)); } else{ dateMap.put(olym.Date__c, olym.FirstDayOfWeek__c); } } List olympusIdList = [select Id,Date__c,FirstDayOfWeek__c from OlympusCalendar__c where Date__c= :dateMap.values()]; for(OlympusCalendar__c olym : olympusIdList){ dateIdMap.put(olym.FirstDayOfWeek__c, olym.id); } for(Contact con :conList){ nameIdMap.put(con.Name.replace(' ',''), con.Id); nameConMap.put(con.Id, con.Name); } // return testuse; for(Agency_Hospital_Link__c ahl : ahlList){ ahlMap.put(ahl.Name, ahl); ahlOcsmIdList.add(ahl.Hospital__c); ahlIdList.add(ahl.Id); } for(Product2 pr2 : pr2List){ UseProductMap.put(pr2.Name, pr2); UseProductIdList.add(pr2.Id); } for(FieldClassification__c ep : FieldClassification1List){ EffectProgressMap.put(ep.EffectProgress__c, ep); EffectProgressIdList.add(ep.Id); } for(FieldClassification__c oc : FieldClassification2List){ OtherBrandConsumablesMap.put(oc.WarlockClassification__c, oc); OtherBrandConsumablesIdList.add(oc.Id); } for(FieldClassification__c pc : FieldClassification3List){ ProductCcategorynMap.put(pc.ProductCcategory__c, pc); ProductCcategorynIdList.add(pc.Id); } for(FieldClassification__c pct : FieldClassification4List){ productCategoriesMap.put(pct.productCategories__c, pct); productCategoriesIdList.add(pct.Id); } List doctor2list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c FROM Agency_Contact__c WHERE Hospital_ID18__c= :ahlOcsmIdList order by Name]; for(Agency_Contact__c ac : doctor2list){ doctor2Map.put(ac.Name.replace(' ',''), ac.Id); } //经销商人员 DealerPersonnel List conListLighrningUtil = LightningUtil.selectAgencyPerson02(); for(contact de : conListLighrningUtil){ DealerPersonnelMap.put(de.Name.replace(' ',''), de.Id); } // 创建周报 List agency_report_headerlist = new List(); Map agency_report_headerMap = new Map(); //zxk 存放担当 for(List lineList :inputList){ Date week = Date.today(); String s_agency = null; String s_agencyname = null; if(dateMap.get(Date.valueOf(lineList[2].replace('/','-'))) != null){ System.debug('dateMap====不等于空'); week = dateMap.get(Date.valueOf(lineList[2].replace('/','-'))); System.debug('===='+week); } System.debug('lineList[1].replace()'+lineList[1].replace(' ','')); if(nameIdMap.get(lineList[1].replace(' ','')) != null){ System.debug('nameIdMap====不等于空'); s_agency = nameIdMap.get(lineList[1].replace(' ','')); s_agencyname = nameConMap.get(nameIdMap.get(lineList[1].replace(' ',''))); System.debug('===='+s_agency); } Agency_Report_Header__c agency_report_header = new Agency_Report_Header__c(); agency_report_header.Name = s_agencyname + ' (' + week.format().replace('/','-') + ')'; agency_report_header.HeaderInputKey__c = createHeader(week,s_agency); agency_report_header.Week__c = week; agency_report_header.Agency_Person2__c = s_agency; if(dateIdMap.containsKey(week)){ agency_report_header.OlympusDate__c = dateIdMap.get(week); } if(s_agencyname != null && s_agencyname != '' && s_agencyname != 'null'){ agency_report_headerMap.put(agency_report_header.HeaderInputKey__c, agency_report_header); } } agency_report_headerlist = agency_report_headerMap.values(); if(agency_report_headerlist.size() > 0){ LightningUtil.upsertMAgencyReportHeader(agency_report_headerlist); } List arList = new List(); Integer hang = 1; User UserPro = LightningUtil.loginUserId(); String UserProTypeStr = UserPro.UserPro_Type__c; for(List lineList :inputList){ // 创建周报明细 Date week = null; String s_agency = null; if(dateMap.get(Date.valueOf(lineList[2].replace('/','-'))) != null){ System.debug('dateMap====不等于空'); week = dateMap.get(Date.valueOf(lineList[2].replace('/','-'))); System.debug('===='+week); } if(nameIdMap.get(lineList[1].replace(' ','')) != null){ System.debug('nameIdMap====不等于空'); s_agency = nameIdMap.get(lineList[1].replace(' ','')); System.debug('===='+s_agency); } Agency_Report__c agencyReport = new Agency_Report__c(); if(week == null && lineList[2] != '' && lineList[2] != null){ errorMag += 'error2 第'+hang+'行数据报告日'+lineList[2]+'填写有误'; errorMag += '='; } agencyReport.Submit_date__c = week; if((s_agency == null || s_agency == '')&& lineList[1] != '' && lineList[1] != null){ errorMag += 'error2 第'+hang+'行数据担当'+lineList[1]+'不存在'; errorMag += '='; } agencyReport.Person_In_Charge2__c = s_agency; if(lineList[2] != null && lineList[2] != ''){ agencyReport.Report_Date__c = Date.valueOf(lineList[2].replace('/','-')); } if(ahlMap.containsKey(lineList[3])){ agencyReport.Agency_Hospital__c = ahlMap.get(lineList[3]).Id; ahlMap.get(lineList[3]).MaxActivityDate__c = week; }else{ if(lineList[3] != '' && lineList[3] != null){ errorMag += 'error2 第'+hang+'行数据经销商医院'+lineList[3]+'不存在'; errorMag += '='; } } String departmentE = GetDepartment_Cateogy(lineList[4]); if(departmentE != 'no'){ agencyReport.Department_Cateogy__c = departmentE; }else{ } if(DealerPersonnelMap.containsKey(lineList[5].replace(' ',''))){ agencyReport.DealerPersonnel__c = DealerPersonnelMap.get(lineList[5].replace(' ','')); }else{ if(lineList[5] != '' && lineList[5] != null){ errorMag += 'error2 第'+hang+'行数据经销商人员'+lineList[5]+'不存在'; errorMag += '='; } } if(GetPurposeType(lineList[6])){ agencyReport.WorkRecord__c = lineList[6]; } if(doctor2Map.containsKey(lineList[7].replace(' ',''))){ agencyReport.doctor2__c = doctor2Map.get(lineList[7].replace(' ','')); }else{ if(lineList[7] != '' && lineList[7] != null){ errorMag += 'error2 第'+hang+'行数据客户人员'+lineList[7]+'不存在'; errorMag += '='; } } if(GetProductClassification(lineList[8])){ agencyReport.ProductClassification__c = lineList[8]; } if(UseProductMap.containsKey(lineList[9])){ agencyReport.UseProduct1__c = UseProductMap.get(lineList[9]).Id; }else{ if(lineList[9] != '' && lineList[9] != null){ errorMag += 'error2 第'+hang+'行数据使用产品1'+lineList[9]+'不存在'; errorMag += '='; } } if(UseProductMap.containsKey(lineList[10])){ agencyReport.UseProduct2__c = UseProductMap.get(lineList[10]).Id; }else{ if(lineList[10] != '' && lineList[10] != null){ errorMag += 'error2 第'+hang+'行数据使用产品2'+lineList[10]+'不存在'; errorMag += '='; } } if(UseProductMap.containsKey(lineList[11])){ agencyReport.UseProduct3__c = UseProductMap.get(lineList[11]).Id; }else{ if(lineList[11] != '' && lineList[11] != null){ errorMag += 'error2 第'+hang+'行数据使用产品3'+lineList[11]+'不存在'; errorMag += '='; } } if(EffectProgressMap.containsKey(lineList[12])){ agencyReport.EffectProgress__c = EffectProgressMap.get(lineList[12]).EffectProgress__c; } if(lineList[13] != null){ agencyReport.ConsumptionOfConsumables__c = Decimal.valueOf(lineList[13]); } if(OtherBrandConsumablesMap.containsKey(lineList[14])){ agencyReport.WarlockClassification__c = OtherBrandConsumablesMap.get(lineList[14]).WarlockClassification__c; } if(ProductCcategorynMap.containsKey(lineList[15])){ agencyReport.ProductCcategory__c = ProductCcategorynMap.get(lineList[15]).ProductCcategory__c; } if(productCategoriesMap.containsKey(lineList[16])){ agencyReport.productCategories__c = productCategoriesMap.get(lineList[16]).productCategories__c; } if(lineList[17] != null){ agencyReport.warlocksNumber__c = Decimal.valueOf(lineList[17]); } if(lineList[18] == 'true'){ agencyReport.WorkMark__c = true; }else{ agencyReport.WorkMark__c = false; } agencyReport.WeeklyReportClassification__c = UserProTypeStr; String headerStr = createHeader(week,s_agency); if(agency_report_headerMap.containsKey(headerStr)){ agencyReport.Agency_Report_Header__c = agency_report_headerMap.get(headerStr).Id; } hang++; arList.add(agencyReport); } if(errorMag != ''){ system.debug('errorMag==========>'+errorMag); return errorMag; } // 更新经销商意愿的最新周 if(ahlMap.values().size() > 0 ){ update ahlMap.values(); } // 新增周报明细 if(arList.size() > 0 ){ system.debug('arList==================>'+arList); LightningUtil.insertMAgencyReport(arList); } } return 'success'; }catch(Exception e){ System.debug('exception'+e); return 'exception'+e; } } // 创建唯一键 public static String createHeader(Date s_date,String nameid){ String str = s_date.format(); String str1 = str.replace('/', ''); return nameid+':'+str1; } // 科室对应翻译 public static String GetDepartment_Cateogy(String department){ String departmentE = 'no'; if(department == '呼吸科' || department == 'BF'){ departmentE = 'BF'; } if(department == '耳鼻喉科' || department == 'ENT'){ departmentE = 'ENT'; } if(department == 'ET耗材' || department == 'ET'){ departmentE = 'ET'; } if(department == '消化科' || department == 'GI'){ departmentE = 'GI'; } if(department == '普外科' || department == 'GS'){ departmentE = 'GS'; } if(department == '妇科' || department == 'GYN'){ departmentE = 'GYN'; } if(department == '其他' || department == 'OTH'){ departmentE = 'OTH'; } if(department == '泌尿科' || department == 'URO'){ departmentE = 'URO'; } return departmentE; } // 判断工作记录是否存在 public static boolean GetPurposeType(String purposeType){ Schema.DescribeFieldResult fieldResult = Agency_Report__c.WorkRecord__c.getDescribe(); List ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry pickListVal : ple){ if(pickListVal.getValue() == purposeType){ return true; } } return false; } // 判断效果/进度是否存在 public static boolean GetProductClassification(String purposeType){ Schema.DescribeFieldResult fieldResult = Agency_Report__c.ProductClassification__c.getDescribe(); List ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry pickListVal : ple){ if(pickListVal.getValue() == purposeType){ return true; } } return false; } // 术士对应产品使用数量和科室同类耗材月使用数量验证必须数字 public static boolean wncc(String wancco){ Pattern pattern = Pattern.compile('^[-\\\\+]?([0-9]+\\\\.?)?[0-9]+$'); Matcher isNum = pattern.matcher(wancco); if (isNum.matches() && wancco.length() <= 14) { return true; } return false; } // 判断产品区分是否满足要求 public static String ifTrueProduct(List> prolist,String str){ for(Map strmap :prolist){ if(strmap.get('label')==str){ return strmap.get('value'); } } return ''; } // 批量添加周报by vivek end @RemoteAction @AuraEnabled public static List> newlyBuild(String hospital_id,String nameer, String type, String doctorDivision1){ List> ret = new List>(); Map space = new Map(); boolean flag = false; space.put('label', ''); space.put('value', ''); space.put('selected', 'true'); ret.add(space); // 戦略科室IDを取得して、それをもとに顧客をSELECT Agency_Hospital_Link__c ahl = [select Hospital__c from Agency_Hospital_Link__c where id = :hospital_id]; List doctor_list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c FROM Agency_Contact__c WHERE Hospital_ID18__c=:ahl.Hospital__c order by Name]; for(Agency_Contact__c row01 : doctor_list){ if(row01.Name != nameer){ flag = true; } } if(flag == true){ Agency_Contact__c acc = new Agency_Contact__c(); acc.Name = nameer; acc.Type__c = type; acc.Doctor_Division1__c = doctorDivision1; acc.Agency_Hospital__c = hospital_id; insert acc; } List doctor_list01 = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c FROM Agency_Contact__c WHERE Hospital_ID18__c=:ahl.Hospital__c order by Name]; for (Agency_Contact__c row : doctor_list01) { Map tmp = new Map(); tmp.put('label',row.Name); tmp.put('value', row.Id); tmp.put('selected', 'false'); tmp.put('Doctor_Division1__c', row.Doctor_Division1__c); ret.add(tmp); } return ret; } @RemoteAction @AuraEnabled public static List> selectPurposeTypes(String doctor_value){ system.debug('doctor_value===============>'+doctor_value); List eftpcList; if(String.isNotBlank(doctor_value)){ // eftpcList = [select id, Name , WorkRecord__c from EffectProgress__c where WorkRecord__c =: doctor_value]; eftpcList = [Select Id,WorkRecord__c,EffectProgress__c from FieldClassification__c where WorkRecord__c =: doctor_value]; } List> options = new List>(); Map space = new Map(); space.put('label', ''); space.put('value', ''); options.add(space); for(FieldClassification__c efptc : eftpcList){ Map efptcMap = new Map(); efptcMap.put('label', efptc.EffectProgress__c); efptcMap.put('value', efptc.EffectProgress__c); options.add(efptcMap); } system.debug('options===============>'+options); return options; } @RemoteAction @AuraEnabled public static List> selectProductClassificationc(String select_ProductClassification){ //fy List WarlockClassificationList; List WarlockClassificationList2; User UserProTypec = LightningUtil.loginUserId(); if(String.isNotBlank(select_ProductClassification)){ // WarlockClassificationList = [select id, Name , ProductClassification__c from WarlockClassification__c where ProductClassification__c =: select_ProductClassification]; if(UserProTypec.UserPro_Type__c =='ET'){ WarlockClassificationList = [select id , ProductClassification__c,WarlockClassification__c from FieldClassification__c where ProductClassification__c =: select_ProductClassification]; }else{ WarlockClassificationList2 = [select count(id) sum, Category4__c from product2 where Category3__c =: select_ProductClassification and ENG_DeaerProFlag__c = true group by Category4__c ]; } } List> options = new List>(); Map space = new Map(); space.put('label', ''); space.put('value', ''); options.add(space); if(UserProTypec.UserPro_Type__c =='ET'){ for(FieldClassification__c WarlockClassification : WarlockClassificationList){ Map WarlockClassificationMap = new Map(); WarlockClassificationMap.put('label', WarlockClassification.WarlockClassification__c); WarlockClassificationMap.put('value', WarlockClassification.WarlockClassification__c); options.add(WarlockClassificationMap); } }else{ for(AggregateResult WarlockClassification2 : WarlockClassificationList2){ Map WarlockClassificationMap2 = new Map(); WarlockClassificationMap2.put('label', string.valueOf(WarlockClassification2.get('Category4__c'))); WarlockClassificationMap2.put('value', string.valueOf(WarlockClassification2.get('Category4__c'))); options.add(WarlockClassificationMap2); } } return options; } @RemoteAction @AuraEnabled public static List> selectProductCcategory(){ List ProductCcategoryList; User UserProETENG = LightningUtil.loginUserId(); if(UserProETENG.UserPro_Type__c == 'ET'){ ProductCcategoryList = [select id, ProductCcategory__c from FieldClassification__c where classification__c =: 'ET']; }else{ ProductCcategoryList = [select id, ProductCcategory__c from FieldClassification__c where classification__c =: 'ENG']; } List> options = new List>(); Map space = new Map(); space.put('label', ''); space.put('value', ''); options.add(space); for(FieldClassification__c ProductCcategory : ProductCcategoryList){ Map ProductCcategorynMap = new Map(); ProductCcategorynMap.put('label', ProductCcategory.ProductCcategory__c); ProductCcategorynMap.put('value', ProductCcategory.ProductCcategory__c); options.add(ProductCcategorynMap); } return options; } @RemoteAction @AuraEnabled public static List> selectProductCcategory01(String select_ProductCcategory){ List productCategoriesList; User UserProETENG = LightningUtil.loginUserId(); System.debug('UserProETENG.UserPro_Type__c=============>'+UserProETENG.UserPro_Type__c); System.debug('select_ProductCcategory=============>'+select_ProductCcategory); FieldClassification__c fi = [Select ProductCcategory__c from FieldClassification__c where ProductCcategory__c =: select_ProductCcategory limit 1]; if(UserProETENG.UserPro_Type__c == 'ET'){ productCategoriesList = [select id, productCategories__c,ET_ENG_classification__c,ProductCcategory__c from FieldClassification__c where ProductCcategory__c =: fi.ProductCcategory__c AND ET_ENG_classification__c =: 'ET']; }else{ productCategoriesList = [select id, productCategories__c,ET_ENG_classification__c,ProductCcategory__c from FieldClassification__c where ProductCcategory__c =:fi.ProductCcategory__c AND ET_ENG_classification__c =: 'ENG']; } List> options = new List>(); Map space = new Map(); space.put('label', ''); space.put('value', ''); options.add(space); for(FieldClassification__c productCategories : productCategoriesList){ Map productCategoriesMap = new Map(); productCategoriesMap.put('label', productCategories.productCategories__c); productCategoriesMap.put('value', productCategories.productCategories__c); options.add(productCategoriesMap); } System.debug('options=============>'+options); return options; } }