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;} //deloitte-zhj 20231115 PIPL还原 //@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')); // 产品1同类耗材科室月使用量 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')); //拜访人 // //fy 20220414 // this.allselectlist.put('doctor3__c', RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','doctor3__c')); // 見出し設定 this.fieldsMap = new Map(); this.fieldsMap = this.getfiledsmap(); //deloitte-zhj 20231115 PIPL还原 // this.PIConfig = new Map(); // this.PIConfig.put('staticResourceAgencyContact', JSON.serialize(PIHelper.getPIIntegrationInfo('Agency_Contact__c'))); } @RemoteAction @AuraEnabled public static List> selectdoctor3c(){ List> options = new List>(); options = RetrospectiveWeeklyReportController.getPicklistValues('Agency_Report__c','doctor3__c'); return options; } 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() != '腹腔镜手术'&&a.getValue() != '开腹手术'){ ses.put('label', a.getLabel()); ses.put('value', a.getValue()); ses.put('selected', 'false'); options.add(ses); } }else{//fy 20220414 if(a.getValue() == '腹腔镜手术'||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){//fy 修改Department_Cateogy_text__c return [select Department_Cateogy__c,Department_Cateogy_text__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() + '%'; User UserProTypec = LightningUtil.loginUserId(); List Product2List=new List(); List select_ProductClassificationList = new List(); if(select_ProductClassification=='其他'){ select_ProductClassificationList.add('基干'); select_ProductClassificationList.add('模型'); select_ProductClassificationList.add('其他'); select_ProductClassificationList.add('其他ET'); select_ProductClassificationList.add('外科ET'); select_ProductClassificationList.add('附属品'); }else if(select_ProductClassification=='呼吸科'){ select_ProductClassificationList.add('呼吸科ET'); select_ProductClassificationList.add('呼吸科耗材'); }else{ select_ProductClassificationList.add(select_ProductClassification); } System.debug('UserProTypec.UserPro_Type__c = ' + UserProTypec.UserPro_Type__c); if(UserProTypec.UserPro_Type__c == 'ET'){ Product2List = [select Id, Name ,Asset_Model_No__c from Product2 where Category3__c in: select_ProductClassificationList AND Asset_Model_No__c like :UseProduct1Name01 AND Dealer_Object__c = true AND Estimation_Entry_Possibility__c = '○']; }else{ Product2List = [select Id, Name,Asset_Model_No__c from Product2 where Category3__c in: select_ProductClassificationList AND Category4__c='Thunderbeat' AND Asset_Model_No__c like :UseProduct1Name01 AND ENG_DeaerProFlag__c = true AND Estimation_Entry_Possibility__c = '○']; } // if(UserProTypec.UserPro_Type__c == 'ET'){ // Product2List = [select Id, Name ,Asset_Model_No__c from Product2 where Category3__c =: select_ProductClassification AND Asset_Model_No__c like :UseProduct1Name01 AND Dealer_Object__c = true AND Estimation_Entry_Possibility__c = '○']; // }else{ // Product2List = [select Id, Name,Asset_Model_No__c from Product2 where Category3__c =: select_ProductClassification AND Category4__c='Thunderbeat' AND Asset_Model_No__c like :UseProduct1Name01 AND ENG_DeaerProFlag__c = true AND Estimation_Entry_Possibility__c = '○']; // } System.debug('Product2List = ' + Product2List); 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 //deloitte-zhj 20231115 PIPL还原 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 //deloitte-zhj 20231115 PIPL还原 ret.add(tmp); } return ret; } //删除周报明细 @RemoteAction @AuraEnabled public static String deleteAgencyReport(String agencyReport_id){ Savepoint sp = Database.setSavepoint(); try{ System.debug('agencyReport_id'+agencyReport_id); Agency_Report__c arrays = new Agency_Report__c(); arrays.Id=agencyReport_id; delete arrays; return 'success'; }catch(Exception e){ Database.rollback(sp); System.debug('exception'+e); return e.getLineNumber()+'exception'+e; } } @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('Agency_Report_Header+++'+Agency_Report_Header); 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); } //fy 20220414 if (doctor != '') { if(WorkRecord == '科室会'){ agency_report.doctor3__c = doctor; }else{ agency_report.doctor2__c = doctor; } }else { if(WorkRecord == '科室会'){ agency_report.doctor3__c = null; }else{ agency_report.doctor2__c = null; } } // if (Department_Cateogy != '') { agency_report.Department_Cateogy__c = Department_Cateogy; } if (Department_Cateogy != '') { agency_report.Department_Cateogy_text__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; }//fy Department_Cateogy_text__c Agency_Report__c agency_report = [select Id,Hospital__c, Name, Department_Cateogy__c,Department_Cateogy_text__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,doctor3__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 != '') { if(WorkRecord == '科室会'){ agency_report.doctor3__c = doctor; }else{ agency_report.doctor2__c = doctor; } } else { if(WorkRecord == '科室会'){ agency_report.doctor3__c = null; }else{ agency_report.doctor2__c = null; } } // if (Department_Cateogy != '') { agency_report.Department_Cateogy__c = Department_Cateogy; } else { agency_report.Department_Cateogy__c = null; } if (Department_Cateogy != '') { agency_report.Department_Cateogy_text__c = Department_Cateogy; } else { agency_report.Department_Cateogy_text__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; } //fy 20220414 // agency_report = LightningUtil.updateAgencyReport(agency_report); agency_report = updateAgencyReport(agency_report); return agency_report.Id; } //fy 20220414 public static Agency_Report__c updateAgencyReport(Agency_Report__c data) { system.debug('data.Agency_Hospital__c++'+data.Agency_Hospital__c); system.debug('data.Id++'+data.Id); if (String.isBlank(data.Hospital__c)) { List agency_hospital_link = [select Id, Hospital__c from Agency_Hospital_Link__c where Id=:data.Agency_Hospital__c]; data.Hospital__c = agency_hospital_link[0].Hospital__c; } update data; return data; } @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]; } // fy 导入 20220506 start @AuraEnabled public static String processDataAWSId(String fileData) { System.debug('fileData:::'+filedata); String errorMag = ''; // 创建日报 try{ if(fileData!=null){ String[] fileLines = new String[]{}; fileLines = fileData.split('\n'); // 经销商医院名称list List ahlNameList = new List(); //for content system.debug('fileLines.size()==============>'+fileLines.size()); for (Integer i=1,j=fileLines.size();i inputvalues = new List(); system.debug('fileLines[i]= '+fileLines[i].replace(',','').trim()+' +++'); if(fileLines[i].replace(',','').trim()!=''){ inputvalues = fileLines[i].split(','); if(inputvalues != null){ if(inputvalues[1] == '' || inputvalues[1] == null){ errorMag += 'error1 第'+i+'行数据医院不能为空'; } ahlNameList.add(inputvalues[1]); } } } system.debug('ahlNameList==============>'+ahlNameList); // 经销商医院的ocsm医院id的list List ahlOcsmIdList = new List(); List ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where name = :ahlNameList and Agency_Campaign_Obj__c = true]; for(Agency_Hospital_Link__c ahl : ahlList){ ahlOcsmIdList.add(ahl.Hospital__c); } //List doctor2list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c,AWS_Data_Id__c,Name_Encrypted__c FROM Agency_Contact__c WHERE Hospital_ID18__c= :ahlOcsmIdList order by Name]; //deloitte-zhj 20231115 PIPL还原 去掉AWS_Data_Id__c 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]; //zhj 去掉Name_Encrypted__c 新方案改造 2023-12-21 if(errorMag != ''){ return errorMag; } String doctor2listStr = JSON.serialize(doctor2list); return doctor2listStr; } }catch(Exception e){ System.debug('exception'+e); return e.getLineNumber()+'exception:'+e; } return 'success'; } //fy 调用pi改造的 获取url 和 token的方法 @AuraEnabled public static Map getAwsurl(String sobj){ system.debug('进入getAwsurl'); PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo(sobj); Map awsmap = new Map(); awsmap.put('token', piIntegration.token); awsmap.put('newUrl', piIntegration.newUrl); awsmap.put('searchUrl', piIntegration.searchUrl); awsmap.put('transactionURL', piIntegration.transactionURL); return awsmap; } // fy 导入 20220506 end @AuraEnabled public static String processData(String fileData,String sobjectName,List fields) { String errorMag = ''; System.debug('fileData=================>'+fileData); // 创建日报 try{ if(fileData!=null){ User UserProTypec = LightningUtil.loginUserId(); String SignInId = UserInfo.getUserId(); 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(); if(fileLines[i].replace(',','').trim()!=''){ inputvalues = fileLines[i].split(','); system.debug('inputvalues:::::::'+inputvalues); if(inputvalues != null){ // if(inputvalues[0] == '' || inputvalues[0] == null){ // errorMag += 'error1 第'+i+'行数据周不能为空'; // errorMag += '='; // } // if(inputvalues[0] == '' || inputvalues[0] == null){ // errorMag += 'error1 第'+i+'行数据担当不能为空'; // errorMag += '='; // } if(inputvalues[0] == '' || inputvalues[0] == null){ errorMag += 'error1 第'+i+'行数据活动日不能为空'; errorMag += '='; } if(inputvalues[1] == '' || inputvalues[1] == null){ errorMag += 'error1 第'+i+'行数据医院不能为空'; errorMag += '='; } if(inputvalues[2] == '' || inputvalues[2] == null){ errorMag += 'error1 第'+i+'行数据科室不能为空'; errorMag += '='; } //fy 20220414 // String departmentstr = GetDepartment_Cateogy(inputvalues[2]); // if(departmentstr == 'no' && inputvalues[2] != '' && inputvalues[2] != null){ // if(inputvalues[2] != '' && inputvalues[2] != null){ // errorMag += 'error3 第'+i+'行数据科室选项列表的值'+inputvalues[2]+'不存在'; // errorMag += '='; // } if(inputvalues[3] == '' || inputvalues[3] == null){ errorMag += 'error1 第'+i+'行数据经销商人员不能为空'; errorMag += '='; } if(inputvalues[4] == '' || inputvalues[4] == null){ errorMag += 'error1 第'+i+'行数据活动区分不能为空'; errorMag += '='; } boolean purposeType = GetPurposeType(inputvalues[4]); if(!purposeType && inputvalues[4] != '' && inputvalues[4] != null){ errorMag += 'error3 第'+i+'行数据活动区分选项列表的值'+inputvalues[4]+'不存在'; errorMag += '='; } if(inputvalues[4] == 'SIS'||inputvalues[4] == '科室会'||inputvalues[4] == '院内入院申请'||inputvalues[4] == '收费项目申请'){ if(inputvalues[5] == '' || inputvalues[5] == null){ errorMag += 'error1 第'+i+'行数据拜访人不能为空'; errorMag += '='; } } if(inputvalues[6] == '' || inputvalues[6] == null){ errorMag += 'error1 第'+i+'行数据产品分类(第三分类)不能为空'; errorMag += '='; } // if(inputvalues[4] != '临床信息(使用量)收集' && inputvalues[4] != 'QIS处理'){ if(inputvalues[4] != '临床信息(使用量)收集' ){ if(inputvalues[7] == '' || inputvalues[7] == null){ errorMag += 'error1 第'+i+'行数据使用产品1不能为空'; errorMag += '='; } } if((inputvalues[8] != '' && inputvalues[8] != null)&& inputvalues[7] == inputvalues[8]){ errorMag += 'error1 第'+i+'行数据使用产品1和使用产品2的值不能重复'; errorMag += '='; } if((inputvalues[9] != '' && inputvalues[9] != null)&& inputvalues[7] == inputvalues[9]){ errorMag += 'error1 第'+i+'行数据使用产品1和使用产品3的值不能重复'; errorMag += '='; } if((inputvalues[8] != '' && inputvalues[8] != null) && (inputvalues[9] != '' && inputvalues[9] != null) && inputvalues[8] == inputvalues[9]){ errorMag += 'error1 第'+i+'行数据使用产品2和使用产品3的值不能重复'; errorMag += '='; } if(inputvalues[4] != '临床信息(使用量)收集' && inputvalues[4] != '市场推广类活动'){ if(inputvalues[10] == '' || inputvalues[10] == null){ errorMag += 'error1 第'+i+'行数据效果/进度不能为空'; errorMag += '='; } } if(inputvalues[4] == '临床信息(使用量)收集'){ if(inputvalues[11] == '' || inputvalues[11] == null){ errorMag += 'error1 第'+i+'行数据产品1同类耗材科室月使用量不能为空'; errorMag += '='; } } if(inputvalues[11] != '' && inputvalues[11] != null){ boolean wanked = wncc(inputvalues[11]); // if(!wanked && inputvalues[11] == '' || inputvalues[11] == null){ if(!wanked){ errorMag += 'error3 第'+i+'行数据错误,请检查你的产品1同类耗材科室月使用量!'; errorMag += '='; } } //暂时注掉因为ENG的术士分类为空所以暂时注掉 if(inputvalues[4] == '临床信息(使用量)收集'){ if(inputvalues[12] == '' || inputvalues[12] == null){ errorMag += 'error1 第'+i+'行数据产品1对应术式分类不能为空'; errorMag += '='; } } if(inputvalues[4] == '临床信息(使用量)收集'){ if(inputvalues[13] == '' || inputvalues[13] == null){ errorMag += 'error1 第'+i+'行数据已采用其他产品不能为空'; errorMag += '='; } } //暂时注掉因为ET的其他品牌产品类别没有数据 if(inputvalues[4] == '临床信息(使用量)收集' && UserProTypec.UserPro_Type__c =='ENG'){ if(inputvalues[14] == '' || inputvalues[14] == null){ errorMag += 'error1 第'+i+'行数据术士使用产品对应数量不能为空'; errorMag += '='; } } if(inputvalues[4] == '临床信息(使用量)收集'){ if(inputvalues[15] == '' || inputvalues[15] == null){ errorMag += 'error1 第'+i+'行数据产品用量不能为空'; errorMag += '='; } } if(inputvalues[15] != '' && inputvalues[15] != null){ boolean wankeds = wncc(inputvalues[15]); if(!wankeds){ errorMag += 'error3 第'+i+'行数据错误,请检查你的产品用量!'; errorMag += '='; } } system.debug('inputvalues[0]====='+inputvalues[0]); 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]); //担当 // nameList.add(inputvalues[1]); //报告日 dateList.add(Date.valueOf(inputvalues[0].replace('/','-'))); //经销商医院 ahlNameList.add(inputvalues[1]); //使用产品1 Product2NameList.add(inputvalues[7]); //使用产品2 Product2NameList.add(inputvalues[8]); //使用产品3 Product2NameList.add(inputvalues[9]); //效果进度 EffectProgressList.add(inputvalues[10]); //术士分类 OtherBrandConsumablesList.add(inputvalues[12]); //已采用其他品牌 ProductCcategoryList.add(inputvalues[13]); //其他品牌产品类别 productCategoriesList.add(inputvalues[14]); //科室 // departmentSet.add('%'+GetDepartment_Cateogy(inputvalues[2])+'%'+'-'+GetEPurposeType(inputvalues[8])); //导入的数据 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 OtherBrandConsumablesMap2 = 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 FieldClassification2List; List WarlockClassificationList2; List conList = LightningUtil.selectAgencyPerson03(); List olympusDateList = [select Id,Date__c,FirstDayOfWeek__c,DayOfTheWeek__c from OlympusCalendar__c where Date__c= :dateList ]; //医院 List ahlList; Contact conStrList = [select AccountId from contact where id in (select ContactId from User where id =: SignInId)]; String strAgencyId =conStrList.AccountId; System.debug('UserProTypec.UserPro_Type__c = ' + UserProTypec.UserPro_Type__c); if(UserProTypec.UserPro_Type__c == 'ENG'){ ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where Agency__c =: strAgencyId and name = :ahlNameList and AgencyHos_ENG__c = true and Agency_Campaign_Obj__c = true]; }else { ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where Agency__c =: strAgencyId and name = :ahlNameList and AgencyHos_ET__c = true and Agency_Campaign_Obj__c = true]; } // 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; if(UserProTypec.UserPro_Type__c == 'ET'){ pr2List = [select Id, Name,Category3__c,Asset_Model_No__c from Product2 where Asset_Model_No__c in:Product2NameList AND Dealer_Object__c = true AND Estimation_Entry_Possibility__c = '○']; }else{ pr2List = [select Id, Name,Category3__c,Asset_Model_No__c from Product2 where Category4__c='Thunderbeat' AND Asset_Model_No__c in:Product2NameList AND ENG_DeaerProFlag__c = true AND Estimation_Entry_Possibility__c = '○']; } system.debug('pr2List++'+pr2List); // 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]; if(UserProTypec.UserPro_Type__c =='ET'){ FieldClassification2List = [select id,WarlockClassification__c from FieldClassification__c where WarlockClassification__c in :OtherBrandConsumablesList]; }else{ WarlockClassificationList2 = [select count(id) sum, Category4__c from product2 where ENG_DeaerProFlag__c = true group by Category4__c ]; } 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; System.debug('ahlList = ' + ahlList); 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.Asset_Model_No__c, pr2); UseProductIdList.add(pr2.Id); } for(FieldClassification__c ep : FieldClassification1List){ EffectProgressMap.put(ep.EffectProgress__c, ep); EffectProgressIdList.add(ep.Id); } //术式分类 if(UserProTypec.UserPro_Type__c =='ET'){ for(FieldClassification__c oc : FieldClassification2List){ OtherBrandConsumablesMap.put(oc.WarlockClassification__c, oc); OtherBrandConsumablesIdList.add(oc.Id); } }else{ for(AggregateResult oc : WarlockClassificationList2){ OtherBrandConsumablesMap2.put(string.valueOf(oc.get('Category4__c')), oc); } } 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]; //List doctor2list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c,AWS_Data_Id__c,Name_Encrypted__c FROM Agency_Contact__c WHERE Hospital_ID18__c= :ahlOcsmIdList order by Name]; //deloitte-zhj 20231115 PIPL还原 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]; //zhj 去掉Name_Encrypted__c 新方案改造 2022-12-21 for(Agency_Contact__c ac : doctor2list){ // doctor2Map.put(ac.Name.replace(' ',''), ac.Id); // doctor2Map.put(ac.Name_Encrypted__c, ac.Id); //zhj 新方案改造 2022-12-21 // doctor2Map.put(ac.AWS_Data_Id__c, ac.Id); doctor2Map.put(ac.Name.replace(' ',''), ac.Id); //deloitte-zhj 20231115 PIPL还原 } //经销商人员 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[0].replace('/','-'))) != null){ week = dateMap.get(Date.valueOf(lineList[0].replace('/','-'))); } // if(nameIdMap.get(lineList[0].replace(' ','')) != null){ // s_agency = nameIdMap.get(lineList[0].replace(' ','')); // s_agencyname = nameConMap.get(nameIdMap.get(lineList[0].replace(' ',''))); if(conList != null &&conList.size()!=0){ s_agency = conList[0].Id; s_agencyname = conList[0].Name; } 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[0].replace('/','-'))) != null){ week = dateMap.get(Date.valueOf(lineList[0].replace('/','-'))); } // if(nameIdMap.get(lineList[0].replace(' ','')) != null){ // s_agency = nameIdMap.get(lineList[0].replace(' ','')); // } if(conList != null &&conList.size()!=0){ s_agency = conList[0].Id; } Agency_Report__c agencyReport = new Agency_Report__c(); if(week == null && lineList[0] != '' && lineList[0] != null){ errorMag += 'error2 第'+hang+'行数据报告日 '+lineList[0]+'填写有误'; errorMag += '='; } agencyReport.Submit_date__c = week; // if((s_agency == null || s_agency == '')&& lineList[0] != '' && lineList[0] != null){ // errorMag += 'error2 第'+hang+'行数据担当'+lineList[0]+'不存在'; // errorMag += '='; // } agencyReport.Person_In_Charge2__c = s_agency; if(lineList[0] != null && lineList[0] != ''){ agencyReport.Report_Date__c = Date.valueOf(lineList[0].replace('/','-')); } System.debug('ahlMap = ' + ahlMap); System.debug('lineList[1] = ' + lineList[1]); if(ahlMap.containsKey(lineList[1])){ agencyReport.Agency_Hospital__c = ahlMap.get(lineList[1]).Id; ahlMap.get(lineList[1]).MaxActivityDate__c = week; }else{ if(lineList[1] != '' && lineList[1] != null){ errorMag += 'error2 第'+hang+'行数据经销商医院 '+lineList[1]+'不存在'; errorMag += '='; } } // String departmentE = GetDepartment_Cateogy(lineList[2]); // if(departmentE != 'no'){// fy Department_Cateogy_text__c // agencyReport.Department_Cateogy__c = departmentE; agencyReport.Department_Cateogy_text__c =lineList[2]; // }else{ // } if(DealerPersonnelMap.containsKey(lineList[3].replace(' ',''))){ agencyReport.DealerPersonnel__c = DealerPersonnelMap.get(lineList[3].replace(' ','')); }else{ if(lineList[3] != '' && lineList[3] != null){ errorMag += 'error2 第'+hang+'行数据经销商人员 '+lineList[3]+'不存在'; errorMag += '='; } } if(GetPurposeType(lineList[4])){ agencyReport.WorkRecord__c = lineList[4]; } if(agencyReport.WorkRecord__c == '科室会'){ if(lineList[5]=='医生'||lineList[5]=='医生+护士'||lineList[5]=='医生+护士'){ agencyReport.doctor3__c = lineList[5]; }else{ if(lineList[5] != '' && lineList[5] != null){ errorMag += 'error2 第'+hang+'行数据拜访人 '+lineList[5]+'不存在'; errorMag += '='; } } }else{ // if(doctor2Map.containsKey(lineList[5].replace(' ',''))){ if(doctor2Map.containsKey(lineList[5])){ // if(agencyReport.WorkRecord__c == '科室会'){ // agencyReport.doctor3__c = doctor2Map.get(lineList[5].replace(' ','')); // }else{ // agencyReport.doctor2__c = doctor2Map.get(lineList[5].replace(' ','')); agencyReport.doctor2__c = doctor2Map.get(lineList[5]); // } }else{ if(lineList[5] != '' && lineList[5] != null){ errorMag += 'error2 第'+hang+'行数据客户人员 '+lineList[5]+'不存在'; errorMag += '='; } } } if(GetProductClassification(lineList[6])){ agencyReport.ProductClassification__c = lineList[6]; } system.debug('UseProductMap+++'+UseProductMap); system.debug('agencyReport.ProductClassification__c+++'+agencyReport.ProductClassification__c); if(UseProductMap.containsKey(lineList[7])){ if(UseProductMap.get(lineList[7]).Category3__c==agencyReport.ProductClassification__c){ agencyReport.UseProduct1__c = UseProductMap.get(lineList[7]).Id; }else{ errorMag += 'error2 第'+hang+'行数据使用产品1产品型号 '+lineList[7]+'和第三分类无法匹配'; errorMag += '='; } // agencyReport.UseProduct1__c = UseProductMap.get(lineList[7]).Id; }else{ if(lineList[7] != '' && lineList[7] != null){ errorMag += 'error2 第'+hang+'行数据使用产品1 '+lineList[7]+'不存在'; errorMag += '='; } } if(UseProductMap.containsKey(lineList[8])){ if(UseProductMap.get(lineList[8]).Category3__c==agencyReport.ProductClassification__c){ agencyReport.UseProduct2__c = UseProductMap.get(lineList[8]).Id; }else{ errorMag += 'error2 第'+hang+'行数据使用产品2产品型号 '+lineList[8]+'和第三分类无法匹配'; errorMag += '='; } // agencyReport.UseProduct2__c = UseProductMap.get(lineList[8]).Id; }else{ if(lineList[8] != '' && lineList[8] != null){ errorMag += 'error2 第'+hang+'行数据使用产品2 '+lineList[8]+'不存在'; errorMag += '='; } } if(UseProductMap.containsKey(lineList[9])){ if(UseProductMap.get(lineList[9]).Category3__c==agencyReport.ProductClassification__c){ agencyReport.UseProduct3__c = UseProductMap.get(lineList[9]).Id; }else{ errorMag += 'error2 第'+hang+'行数据使用产品3产品型号 '+lineList[9]+'和第三分类无法匹配'; errorMag += '='; } // agencyReport.UseProduct3__c = UseProductMap.get(lineList[9]).Id; }else{ if(lineList[9] != '' && lineList[9] != null){ errorMag += 'error2 第'+hang+'行数据使用产品3 '+lineList[9]+'不存在'; errorMag += '='; } } if(EffectProgressMap.containsKey(lineList[10])){ agencyReport.EffectProgress__c = EffectProgressMap.get(lineList[10]).EffectProgress__c; } boolean wankeds1 = wncc(lineList[11]); if(lineList[11] != null && lineList[11] != ''&&wankeds1){ agencyReport.ConsumptionOfConsumables__c = Decimal.valueOf(lineList[11]); } if(UserProTypec.UserPro_Type__c =='ET'){ if(OtherBrandConsumablesMap.containsKey(lineList[12])){ agencyReport.WarlockClassification__c = OtherBrandConsumablesMap.get(lineList[12]).WarlockClassification__c; } // else{ // if(lineList[12]!=null &&lineList[12]!=''){ // errorMag += 'error2 第'+hang+'行数据产品1对应术式分类'+lineList[12]+'不存在'; // errorMag += '='; // } // } }else{ if(OtherBrandConsumablesMap2.containsKey(lineList[12])){ agencyReport.WarlockClassification__c = string.valueOf(OtherBrandConsumablesMap2.get(lineList[12]).get('Category4__c')); } // else{ // if(lineList[12]!=null &&lineList[12]!=''){ // errorMag += 'error2 第'+hang+'行数据产品1对应术式分类'+lineList[12]+'不存在'; // errorMag += '='; // } // } } if(ProductCcategorynMap.containsKey(lineList[13])){ agencyReport.ProductCcategory__c = ProductCcategorynMap.get(lineList[13]).ProductCcategory__c; } if(UserProTypec.UserPro_Type__c == 'ENG'){ if(productCategoriesMap.containsKey(lineList[14])){ agencyReport.productCategories__c = productCategoriesMap.get(lineList[14]).productCategories__c; } } boolean wankeds2 = wncc(lineList[15]); if(lineList[15] != null && lineList[15] != ''&&wankeds2){ agencyReport.warlocksNumber__c = Decimal.valueOf(lineList[15]); } system.debug('lineList[16]=='+lineList[16]+'+++'); String workmarkvalue=lineList[16].trim(); system.debug('workmarkvalue==++'+workmarkvalue+'+++'); if(workmarkvalue=='需要'){ agencyReport.WorkMark__c = true; }else{ agencyReport.WorkMark__c = false; } system.debug('agencyReport.WorkMark__c+++'+agencyReport.WorkMark__c); 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 e.getLineNumber()+'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 //SWAG-CF58C3 fy start @RemoteAction @AuraEnabled public static Map saveAgencyContact(String name, String type,String doctorDivision1, String agencyHospitalid, String awsid) { //String name, String nameEncrypt, String type, String typeEncrypt, String doctorDivision1, String doctorDivision1Encrypt, String agencyHospitalid, String awsid //zhj 新方案改造 2023-12-21 Agency_Contact__c agency_contact = new Agency_Contact__c(); agency_contact.Name = name; //agency_contact.Name_Encrypted__c = nameEncrypt; //zhj 新方案改造 2023-12-21 agency_contact.Type__c = type; //agency_contact.Type_Encrypted__c = typeEncrypt; //zhj 新方案改造 2023-12-21 agency_contact.Doctor_Division1__c = doctorDivision1; //agency_contact.Doctor_Division1_Encrypted__c = doctorDivision1Encrypt; //zhj 新方案改造 2023-12-21 agency_contact.Agency_Hospital__c = agencyHospitalid; //agency_contact.AWS_Data_Id__c = awsid; //deloitte-zhj 20231115 PIPL还原 Map acMap = new Map(); acMap = LightningUtil.insertAgencyContact(agency_contact); return acMap; } //SWAG-CF58C3 fy start @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 ]; WarlockClassificationList2 = [select count(id) sum, Category4__c from product2 where 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; } //zhj MEBG新方案改造 2022-11-29 start @AuraEnabled public static ControllerResponse searchAgencyDataId(String hospitalId){ ControllerResponse r = new ControllerResponse(); try{ if(String.isBlank(hospitalId)){ r.IsSuccess = true; r.Message = 'noHospitalId'; return r; } //deloitte-zhj 20231115 PIPL还原 去掉AWS_Data_Id__c List acList = [select id,Agency_Hospital__r.Name from Agency_Contact__c where Agency_Hospital__c=:hospitalId]; r.IsSuccess = true; r.Message = ''; r.Data = acList; return r; }catch(Exception e) { System.debug('into catch'+e.getMessage()); r.IsSuccess = false; r.message = e.getMessage()+e.getStackTraceString(); return r; } } }