public without sharing class RetrospectiveWeeklyReportController{
|
@AuraEnabled public List<Agency_Report__c> reports{get;set;}
|
@AuraEnabled public Map<String,List<Map<String,String>>> allselectlist{get;set;}
|
@AuraEnabled public Map<String,String> fieldsMap{get;set;}
|
@AuraEnabled public Map<String,List<Map<String,String>>> docmap{get;set;}
|
@AuraEnabled public List<Map<String,String>> doctorList{get;set;}
|
@AuraEnabled public String UserProType{get;set;}
|
@AuraEnabled public Map<String,Agency_Report__c> AgencyReportMap{get;set;}
|
@AuraEnabled public Map<String,string> 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<String,List<Map<String,String>>>();
|
// 用来存放工作会记录 和 效果/进度
|
this.AgencyReportMap = new Map<String,Agency_Report__c>();
|
|
Map<String,List<Map<String,String>>> alldata = new Map<String,List<Map<String,String>>>();
|
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<Map<String,String>> tmp = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
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<Contact> agency_person_data = LightningUtil.selectAgencyPerson03();
|
for(Contact var : agency_person_data) {
|
Map<String,String> om = new Map<String,String>();
|
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<Map<String,String>> tmp01 = new List<Map<String,String>>();
|
Map<String,String> space01 = new Map<String,String>();
|
space01.put('label', '');
|
space01.put('value', '');
|
space01.put('selected', 'true');
|
tmp01.add(space01);
|
// 经销商人员 DealerPersonnel__c
|
List<Contact> agency_person_data01 = LightningUtil.selectAgencyPerson02();
|
system.debug('agency_person_data01================>'+agency_person_data01);
|
for(Contact var : agency_person_data01) {
|
Map<String,String> om01 = new Map<String,String>();
|
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<String,String>();
|
this.fieldsMap = this.getfiledsmap();
|
|
this.PIConfig = new Map<String,string>();
|
this.PIConfig.put('staticResourceAgencyContact', JSON.serialize(PIHelper.getPIIntegrationInfo('Agency_Contact__c')));
|
}
|
|
|
public static List<Map<String,String>> getPicklistValues(String objstr, String fld){
|
List<Map<String,String>> options = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
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<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
|
list<Schema.PicklistEntry> values = fieldMap.get(fld).getDescribe().getPickListValues();
|
for (Schema.PicklistEntry a : values)
|
{
|
if (!a.isActive()) continue;
|
Map<String,String> ses = new Map<String,String>();
|
ses.put('label', a.getLabel());
|
ses.put('value', a.getValue());
|
ses.put('selected', 'false');
|
options.add(ses);
|
}
|
return options;
|
}
|
public static List<Map<String,String>> getPicklistValues1(String objstr, String fld){
|
List<Map<String,String>> options = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
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<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
|
list<Schema.PicklistEntry> values = fieldMap.get(fld).getDescribe().getPickListValues();
|
for (Schema.PicklistEntry a : values)
|
{
|
if (!a.isActive()) continue;
|
Map<String,String> ses = new Map<String,String>();
|
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<String,String> getfiledsmap()
|
{
|
Map<String,Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
|
Map<String,List<String>> typemap = new Map<String,List<String>> ();
|
// Agency_Opportunity__c 经销商询价
|
Map<String,Schema.SObjectField> fieldMap = schemaMap.get('Agency_Opportunity__c').getDescribe().fields.getMap();
|
Map<String,String> mappingmap = new Map<String,String>();
|
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<Agency_Hospital_Link__c> getHospitalList(String hospital_name) {
|
User login_user_id = LightningUtil.loginUserId();
|
String SignInId = UserInfo.getUserId();
|
// List<Contact> 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<Product2> getUseProduct1(String UseProduct1Name,String select_ProductClassification) {
|
String UseProduct1Name01 = '%' + UseProduct1Name.trim() + '%';
|
List<Product2> Product2List = [select Id, Name from Product2 where Category3__c =: select_ProductClassification AND Name like :UseProduct1Name01];
|
return Product2List;
|
}
|
|
|
@RemoteAction
|
@AuraEnabled
|
public static List<Map<String,String>> getDoctorList(String hospital_id){
|
List<Map<String,String>> ret = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
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<Agency_Contact__c> 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<String,String> tmp = new Map<String,String>();
|
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__c> 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> 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<Agency_Opportunity__c> selectOpportunityByIdAndHospitalLinkId(String opportunity_id, String agency_hospital_link_id) {
|
List<Agency_Opportunity__c> ret = new List<Agency_Opportunity__c>();
|
|
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<Agency_Report__c> getReportsById(String report_id) {
|
system.debug('==report_id================>'+report_id);
|
List<Agency_Report__c> ret = new List<Agency_Report__c>();
|
ret = LightningUtil.selectAgencyReportById01(report_id);
|
system.debug('==Agency_Report_Header__r.WeeklyReportClassification__c=================>'+ret);
|
return ret;
|
}
|
|
// 批量添加周报by vivek start
|
@RemoteAction
|
@AuraEnabled
|
public static List<Agency_Report__c> getReportsByDate(String date1, String date2) {
|
Date date1_date = Date.valueOf(date1);
|
Date date2_date = Date.valueOf(date2);
|
RetrospectiveWeeklyReportController li = new RetrospectiveWeeklyReportController();
|
List<Contact> conMList = LightningUtil.selectAgencyPerson03();
|
return LightningUtil.selectMAgencyReport01(date1_date, date2_date, conMList);
|
}
|
|
public List<contact> 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<String> fields) {
|
String errorMag = '';
|
System.debug('fileData=================>'+fileData);
|
// 创建周报
|
try{
|
if(fileData!=null){
|
String[] fileLines = new String[]{};
|
fileLines = fileData.split('\n');
|
// 担当名称的list
|
List<String> nameList = new List<String>();
|
// 报告日的list
|
List<Date> dateList = new List<Date>();
|
// List<String> s_dateList = new List<String>();
|
// 导入的数据
|
List<List<String>> inputList = new List<List<String>>();
|
// 经销商医院名称list
|
List<String> ahlNameList = new List<String>();
|
// 产品
|
List<String> Product2NameList = new List<String>();
|
// 效果进度
|
List<String> EffectProgressList = new List<String>();
|
// 术士分类
|
List<String> OtherBrandConsumablesList = new List<String>();
|
// 其他品牌耗材使用
|
List<String> ProductCcategoryList = new List<String>();
|
// 其他品牌耗材使用
|
List<String> productCategoriesList = new List<String>();
|
// 科室Set
|
// Set<String> departmentSet = new Set<String>();
|
// 经销商询价名称list
|
// List<String> ahlOppNameList = new List<String>();
|
//for content
|
for (Integer i=1,j=fileLines.size();i<j;i++){
|
List<String> inputvalues = new List<String>();
|
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<String,String> nameIdMap = new Map<String,String>();
|
Map<String,String> nameConMap = new Map<String,String>();
|
// 经销商医院名称匹配的map
|
Map<String,Agency_Hospital_Link__c> ahlMap = new Map<String,Agency_Hospital_Link__c>();
|
// 经销商医院的ocsm医院id的list
|
List<String> ahlOcsmIdList = new List<String>();
|
// 经销商医院id的List
|
List<String> ahlIdList = new List<String>();
|
// 使用产品1,2,3
|
Map<String,Product2> UseProductMap = new Map<String,Product2>();
|
// 效果进度
|
Map<String,FieldClassification__c> EffectProgressMap = new Map<String,FieldClassification__c>();
|
// 术士分类
|
Map<String,FieldClassification__c> OtherBrandConsumablesMap = new Map<String,FieldClassification__c>();
|
// 已采用其他产品
|
Map<String,FieldClassification__c> ProductCcategorynMap = new Map<String,FieldClassification__c>();
|
// 其他品牌产品类别
|
Map<String,FieldClassification__c> productCategoriesMap = new Map<String,FieldClassification__c>();
|
// 使用产品id的List
|
List<String> UseProductIdList = new List<String>();
|
// 效果进度id的List
|
List<String> EffectProgressIdList = new List<String>();
|
// 术士分类id的List
|
List<String> OtherBrandConsumablesIdList = new List<String>();
|
// 已采用其他品牌id的List
|
List<String> ProductCcategorynIdList = new List<String>();
|
// 其他品牌产品类别id的List productCategoriesMap
|
List<String> productCategoriesIdList = new List<String>();
|
// 产品区分的map
|
Map<String,String> protypeMap = new Map<String,String>();
|
// 获取每周第一天的map
|
Map<Date,Date> dateMap = new Map<Date,Date>();
|
// 根据日期获取olympus日历id的map
|
Map<Date,String> dateIdMap = new Map<Date,String>();
|
// 根据经销商医院的ocsm医院获取的所有.客户人员的信息的名称和id的map DealerPersonnelMap
|
Map<String,String> doctor2Map = new Map<String,String>();
|
//存放经销商人员的Map
|
Map<String,String> DealerPersonnelMap = new Map<String,String>();
|
// 经销商询价的map
|
Map<String,Agency_Opportunity__c> aoMap = new Map<String,Agency_Opportunity__c>();
|
List<Contact> conList = LightningUtil.selectAgencyPerson03();
|
List<OlympusCalendar__c> olympusDateList = [select Id,Date__c,FirstDayOfWeek__c,DayOfTheWeek__c from OlympusCalendar__c where Date__c= :dateList ];
|
List<Agency_Hospital_Link__c> ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where name = :ahlNameList and Agency_Campaign_Obj__c = true];
|
List<Product2> pr2List = [select id,name from Product2 where name in:Product2NameList];
|
List<FieldClassification__c> FieldClassification1List = [select id,EffectProgress__c from FieldClassification__c where EffectProgress__c in :EffectProgressList];
|
List<FieldClassification__c> FieldClassification2List = [select id,WarlockClassification__c from FieldClassification__c where WarlockClassification__c in :OtherBrandConsumablesList];
|
List<FieldClassification__c> FieldClassification3List = [select id,ProductCcategory__c from FieldClassification__c where ProductCcategory__c in :ProductCcategoryList];
|
List<FieldClassification__c> 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<OlympusCalendar__c> 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<Agency_Contact__c> 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<contact> conListLighrningUtil = LightningUtil.selectAgencyPerson02();
|
for(contact de : conListLighrningUtil){
|
DealerPersonnelMap.put(de.Name.replace(' ',''), de.Id);
|
}
|
// 创建周报
|
List<Agency_Report_Header__c> agency_report_headerlist = new List<Agency_Report_Header__c>();
|
Map<String,Agency_Report_Header__c> agency_report_headerMap = new Map<String,Agency_Report_Header__c>();
|
//zxk 存放担当
|
for(List<String> 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<Agency_Report__c> arList = new List<Agency_Report__c>();
|
Integer hang = 1;
|
User UserPro = LightningUtil.loginUserId();
|
String UserProTypeStr = UserPro.UserPro_Type__c;
|
for(List<String> 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<Schema.PicklistEntry> 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<Schema.PicklistEntry> 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<Map<String,String>> prolist,String str){
|
for(Map<String,String> strmap :prolist){
|
if(strmap.get('label')==str){
|
return strmap.get('value');
|
}
|
}
|
return '';
|
}
|
// 批量添加周报by vivek end
|
@RemoteAction
|
@AuraEnabled
|
public static List<Map<String,String>> newlyBuild(String hospital_id,String nameer, String type, String doctorDivision1){
|
List<Map<String,String>> ret = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
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<Agency_Contact__c> 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<Agency_Contact__c> 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<String,String> tmp = new Map<String,String>();
|
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<Map<String,String>> selectPurposeTypes(String doctor_value){
|
system.debug('doctor_value===============>'+doctor_value);
|
List<FieldClassification__c> 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<Map<String,String>> options = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
space.put('label', '');
|
space.put('value', '');
|
options.add(space);
|
for(FieldClassification__c efptc : eftpcList){
|
Map<String,String> efptcMap = new Map<String,String>();
|
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<Map<String,String>> selectProductClassificationc(String select_ProductClassification){
|
List<FieldClassification__c> WarlockClassificationList;
|
if(String.isNotBlank(select_ProductClassification)){
|
// WarlockClassificationList = [select id, Name , ProductClassification__c from WarlockClassification__c where ProductClassification__c =: select_ProductClassification];
|
WarlockClassificationList = [select id , ProductClassification__c,WarlockClassification__c from FieldClassification__c where ProductClassification__c =: select_ProductClassification];
|
|
}
|
List<Map<String,String>> options = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
space.put('label', '');
|
space.put('value', '');
|
options.add(space);
|
for(FieldClassification__c WarlockClassification : WarlockClassificationList){
|
Map<String,String> WarlockClassificationMap = new Map<String,String>();
|
WarlockClassificationMap.put('label', WarlockClassification.WarlockClassification__c);
|
WarlockClassificationMap.put('value', WarlockClassification.WarlockClassification__c);
|
options.add(WarlockClassificationMap);
|
}
|
return options;
|
}
|
@RemoteAction
|
@AuraEnabled
|
public static List<Map<String,String>> selectProductCcategory(){
|
List<FieldClassification__c> 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<Map<String,String>> options = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
space.put('label', '');
|
space.put('value', '');
|
options.add(space);
|
for(FieldClassification__c ProductCcategory : ProductCcategoryList){
|
Map<String,String> ProductCcategorynMap = new Map<String,String>();
|
ProductCcategorynMap.put('label', ProductCcategory.ProductCcategory__c);
|
ProductCcategorynMap.put('value', ProductCcategory.ProductCcategory__c);
|
options.add(ProductCcategorynMap);
|
}
|
return options;
|
}
|
@RemoteAction
|
@AuraEnabled
|
public static List<Map<String,String>> selectProductCcategory01(String select_ProductCcategory){
|
List<FieldClassification__c> productCategoriesList;
|
User UserProETENG = LightningUtil.loginUserId();
|
System.debug('UserProETENG.UserPro_Type__c=============>'+UserProETENG.UserPro_Type__c);
|
FieldClassification__c fi = [Select ProductCcategory__c from FieldClassification__c where ID =: select_ProductCcategory];
|
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<Map<String,String>> options = new List<Map<String,String>>();
|
Map<String,String> space = new Map<String,String>();
|
space.put('label', '');
|
space.put('value', '');
|
options.add(space);
|
for(FieldClassification__c productCategories : productCategoriesList){
|
Map<String,String> productCategoriesMap = new Map<String,String>();
|
productCategoriesMap.put('label', productCategories.productCategories__c);
|
productCategoriesMap.put('value', productCategories.productCategories__c);
|
options.add(productCategoriesMap);
|
}
|
System.debug('options=============>'+options);
|
return options;
|
}
|
}
|