public without sharing class LightningUtil { public LightningUtil() { } // 精琢科技 zxk 查询用户的用户产品区分字段 start public static User loginUserId(){ system.debug('UserInfo.getUserId()================>'+UserInfo.getUserId()); return [select UserPro_Type__c from User where id =: UserInfo.getUserId()]; } // 精琢科技 zxk 查询用户的用户产品区分字段 end public static List selectOCMAgencyContact(Set hospitalSet, Set ahospitalSet) { return [select Id, Agency_Hospital__c, IsOlympusContact__c, Name, Doctor_Division1__c, Type__c, Hospital_DC_Name__c,Department_Cateogy_F__c,Hospital_Name__c from Agency_Contact__c where Department_Class__r.Hospital_Department_Class__c in :hospitalSet or (Department_Class__c = null and Agency_Hospital__c in :aHospitalSet) order by Name]; } public static List searchOCMAgencyContact(Set hospitalSet, Set aHospitalSet, String hosStr, String conStr) { return [select Id, Agency_Hospital__c, IsOlympusContact__c, Name, Doctor_Division1__c, Type__c, Hospital_DC_Name__c,Department_Cateogy_F__c,Hospital_Name__c from Agency_Contact__c where (Department_Class__r.Hospital_Department_Class__c in :hospitalSet or (Department_Class__c = null and Agency_Hospital__c in :aHospitalSet)) and Name like :conStr and Hospital_DC_Name__c like :hosStr order by Name]; } public static List selectContact(String cId) { return [select Id, AccountId, Name from Contact where id=:cId]; } public static List selectAgencyContactList(String hospital_id) { //return [select id,Name,Doctor_Division1__c FROM Contact WHERE Strategic_dept_Class__c in (select Id From Account where Hospital_Department_Class__c=:hospital_id and RecordTypeId=:record_type_id)]; Agency_Hospital_Link__c ahl = [select Hospital__c from Agency_Hospital_Link__c where id = :hospital_id]; return [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c FROM Agency_Contact__c WHERE Hospital_ID18__c=:ahl.Hospital__c]; } public static List selectAgencyPerson() { String login_user_id = UserInfo.getUserId(); return [select id, Name, Agency_User__c from contact where Agency_User__c = true and Isactive__c = '有效' and AccountId in (select AccountId from User where id=:login_user_id)]; } public static List selectAgencyPerson01() { String login_user_id = UserInfo.getUserId(); system.debug('login_user_id=============>'+login_user_id); return [select id, Name,Agency_User__c from contact where Agency_User__c = false and Isactive__c = '有效' and id in (select ContactId from User where id =: login_user_id)]; } public static List selectAgencyPerson02() { String login_user_id = UserInfo.getUserId(); return [select id, Name, Agency_User__c from contact where Isactive__c = '有效' and AccountId in (select AccountId from User where id=:login_user_id)]; } public static List selectAgencyPerson03() { String login_user_id = UserInfo.getUserId(); system.debug('login_user_id=============>'+login_user_id); return [select id, Name,Agency_User__c from contact where Isactive__c = '有效' and id in (select ContactId from User where id =: login_user_id)]; } public static void updateAccMaxActivityDate(String accId, Date week) { Agency_Hospital_Link__c account = [select Id,MaxActivityDate__c from Agency_Hospital_Link__c where id=:accId]; account.MaxActivityDate__c = week; update account; } public static Agency_Report_Header__c upsertAgencyReportHeader(Agency_Report_Header__c data) { upsert data Agency_Report_Header__c.HeaderInputKey__c; return data; } public static void upsertMAgencyReportHeader(List data) { upsert data Agency_Report_Header__c.HeaderInputKey__c; // return data; } public static Agency_Report__c insertAgencyReport(Agency_Report__c data) { 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; } if (String.isBlank(data.Department_Class__c)) { String record_type_id = getRecordTypeId(data.Department_Cateogy__c); List account = [select Id, RecordTypeId from account where Hospital_Department_Class__c=:data.Hospital__c and RecordTypeId=:record_type_id]; data.Department_Class__c = account[0].Id; } insert data; return data; } public static void insertMAgencyReport(List data) { insert data; } public static Agency_Report__c updateAgencyReport(Agency_Report__c data) { 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; } if (String.isBlank(data.Department_Class__c)) { String record_type_id = getRecordTypeId(data.Department_Cateogy__c); List account = [select Id, RecordTypeId from account where Hospital_Department_Class__c=:data.Hospital__c and RecordTypeId=:record_type_id]; data.Department_Class__c = account[0].Id; } update data; return data; } public static List getDeptListByRecordType(String hospital_id, Set recordIds) { return [select Id, RecordTypeId, Name from account where Hospital_Department_Class__c = :hospital_id and RecordTypeId in :recordIds]; } public static List getAccRecordType(String[] deptTypes) { return [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName IN :deptTypes]; } public static void upsertAgencyOpportunity(List upsertList) { upsert upsertList Agency_Opportunity__c.TargetInputKey__c; } //经销商系统 public static List selectAgencyReport(Date week, String person_str) { if (String.isBlank(person_str)) { List person_list = selectAgencyPerson(); return [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c,ConsumptionOfConsumables__c, WorkMark__c,warlocksNumber__c,Department_Cateogy__c,ProductClassification__c,WarlockClassification__c,ProductCcategory__c, productCategories__c, DealerPersonnel__c,WorkRecord__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__r.Name, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name,EffectProgress__c, UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name From Agency_Report__c where Submit_date__c=:week and Person_In_Charge2__c in :person_list and WeeklyReportClassification__c = '' order by LastModifiedDate desc]; } else { return [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c,ConsumptionOfConsumables__c, WorkMark__c,warlocksNumber__c,Department_Cateogy__c,DealerPersonnel__c,ProductClassification__c,WarlockClassification__c,ProductCcategory__c, productCategories__c, WorkRecord__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__r.Name, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name,EffectProgress__c, UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name From Agency_Report__c where Submit_date__c=:week and Person_In_Charge2__c=:person_str and WeeklyReportClassification__c = '' order by LastModifiedDate desc]; } } //追溯系统 public static List selectAgencyReport01(Date week, String person_str) { system.debug('person_strperson_str=================>'+person_str); if (String.isBlank(person_str)) { List person_list = selectAgencyPerson01(); return [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c,ConsumptionOfConsumables__c, WorkMark__c,warlocksNumber__c,Department_Cateogy__c,ProductClassification__c,WarlockClassification__c,ProductCcategory__c,productCategories__c, DealerPersonnel__c,WorkRecord__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__r.Name, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name,EffectProgress__c, UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name From Agency_Report__c where Submit_date__c=:week and Person_In_Charge2__c in :person_list and WeeklyReportClassification__c != '' order by LastModifiedDate desc]; } else { return [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c,ConsumptionOfConsumables__c, WorkMark__c,warlocksNumber__c,Department_Cateogy__c,DealerPersonnel__c,ProductClassification__c,WarlockClassification__c,ProductCcategory__c,productCategories__c, WorkRecord__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__r.Name, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name,EffectProgress__c, UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name From Agency_Report__c where Submit_date__c=:week and Person_In_Charge2__c=:person_str and WeeklyReportClassification__c != '' order by LastModifiedDate desc]; } } //经销商系统 public static List selectMAgencyReport(Date date1, Date date2 ,List conMList) { List reportlist = [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c,ConsumptionOfConsumables__c,warlocksNumber__c,WorkMark__c,Department_Cateogy__c, DealerPersonnel__c,WorkRecord__c, ProductClassification__c,WarlockClassification__c,ProductCcategory__c,productCategories__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__r.Name,Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name,EffectProgress__c, UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name From Agency_Report__c where Person_In_Charge2__c in :conMList and Report_Date__c >= :date1 and Report_Date__c <= :date2 and WeeklyReportClassification__c = '' ]; return reportlist; } //追溯系统 public static List selectMAgencyReport01(Date date1, Date date2 ,List conMList) { List reportlist = [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c,ConsumptionOfConsumables__c,warlocksNumber__c,WorkMark__c,Department_Cateogy__c, DealerPersonnel__c,WorkRecord__c, ProductClassification__c,WarlockClassification__c,ProductCcategory__c,productCategories__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__r.Name,Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name,EffectProgress__c, UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name From Agency_Report__c where Person_In_Charge2__c in :conMList and Report_Date__c >= :date1 and Report_Date__c <= :date2 and WeeklyReportClassification__c != '' ]; return reportlist; } //经销商系统的 public static List selectAgencyReportById(String report_id) { return [Select Id, Name, Department_Cateogy__c, ConsumptionOfConsumables__c,warlocksNumber__c,WorkMark__c,WorkRecord__c,EffectProgress__c,ProductClassification__c,ProductCcategory__c,productCategories__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__c,DealerPersonnel__r.Name, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c From Agency_Report__c where id=:report_id ]; } //追溯系统的 public static List selectAgencyReportById01(String report_id) { return [Select Id, Name, Department_Cateogy__c, ConsumptionOfConsumables__c,warlocksNumber__c,WorkMark__c,WorkRecord__c,EffectProgress__c,ProductClassification__c,ProductCcategory__c,productCategories__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c, Person_In_Charge2__c,DealerPersonnel__c,DealerPersonnel__r.Name, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c, Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c From Agency_Report__c where id=:report_id ]; } public static List selectOpportunityByIdAndHospitalLinkId(String opportunity_id, String agency_hospital_link_id) { return [select Id, Name, StageName__c, StageName2__c, RecordTypeId, Amount__c, OCMSale_Price__c, Close_Forecasted_Date__c, TargetInputKey__c, Agency_Hospital__c, Agency_Hospital__r.Name, Department_Cateogy__c, Product_Category__c, Product_Category__r.Name from Agency_Opportunity__c where id=:opportunity_id and Agency_Hospital__c=:agency_hospital_link_id]; } public static String getRecordTypeId(String department_str) { String record_type_id = ''; if (department_str == 'GI') { // 消化科 record_type_id = '01210000000QemLAAS'; } else if(department_str == 'BF') { // 呼吸科 record_type_id = '01210000000QezZAAS'; } else if(department_str == 'GYN') { // 婦人科 record_type_id = '01210000000QezoAAC'; } else if(department_str == 'GS') { // 普外科 record_type_id = '01210000000QezeAAC'; } else if(department_str == 'URO') { // 泌尿科 record_type_id = '01210000000QezjAAC'; } else if(department_str == 'ENT') { // 耳鼻喉科 record_type_id = '01210000000QeztAAC'; } else if(department_str == 'ET') { record_type_id = '01210000000QemQAAS'; } else if(department_str == 'OTH') { // その他 record_type_id = '01210000000QezyAAC'; } return record_type_id; } public static void updateAgencyOpportunity(Agency_Opportunity__c updaterecord) { upsert updaterecord; } }