Apex
Trailhead官方参考文档:
Apex&SOQL官方学习文档
ctrl_MDT_AP_CHN_CAS_Week_Plan.cls
public with sharing class ctrl_MDT_AP_CHN_CAS_Week_Plan {
static final String BU = Label.MDT_CHN_CAS;
public ctrl_MDT_AP_CHN_CAS_Week_Plan() {
}
//根据岗位获取医院
@AuraEnabled(cacheable=false)
public static List<MDT_AP_CHN_Lightning_Utils.HospitalInfo> GetHospitalAction(){
//获取岗位
List<MDT_AP_CHN_Lightning_Utils.Position> list_position = MDT_AP_CHN_Lightning_Utils.GetPositionDataAction(BU);//BU顶层全局变量
List<String> positionIds = new List<String>();
for(MDT_AP_CHN_Lightning_Utils.Position pos :list_position){
positionIds.add(pos.id);
}
return MDT_AP_CHN_Lightning_Utils.GetHospitalListAction(positionIds);
}
}
总结
Custom Labels
static final String BU = Label.MDT_CHN_CAS
静态全局变量其中MDT_CHN_CAS为Custom Labels(自定义标签),类似MDT_AP_CHN_CRM_WarrantyCard项目中的Label.MDT_CHN_CRHF
@AuraEnabled(cacheable=false)注解
前台访问后台在方法上必须要加上@AuraEnabled(cacheable=false)注解
*解析三:
MDT_AP_CHN_Lightning_Utils类
此工具类是公司的工具类,部署在devcore环境上,可以直接使用类名.方法名()去调用方法。
MDT_AP_CHN_Lightning_Utils.cls
/*
Apply To: CHN Lightning Utils
Created On: 11-19-2020
Function: CHN Lightning Utils withOut sharing
Test Class: Test_MDT_AP_CHN_Lightning_Utils
Revision History
Developer Date Version Description
-------------------------------------------------
kaer jiang 11-19-2020 V1.0 Initial Version
*/
public without sharing class MDT_AP_CHN_Lightning_Utils {
static final String[] Titles = new String[]{'TSR','DSM','RSM','NSD','NSM','BU','OU'};
//岗位信息
public class Position{
@AuraEnabled
public String id{get;set;}//岗位Id
@AuraEnabled
public String name{get{return tsr;}}//销售FirstName
@AuraEnabled
public String region{get;set;}//上上级岗位(大区经理)
@AuraEnabled
public String district{get;set;}//上级岗位(小区经理)
@AuraEnabled
public String position{get;set;}//岗位名称
@AuraEnabled
public String uid{get;set;} //岗位外键ID
@AuraEnabled
public String tsrId{get;set;} //销售Id
@AuraEnabled
public String tsr{get;set;} //销售FirstName
@AuraEnabled
public String title{get;set;} //销售职位('TSR','DSM','RSM','NSD','NSM','BU')
@AuraEnabled
public String positionType{get;set;}//岗位状态(全职,代岗,离职)
@AuraEnabled
public String productLine{get;set;}//产品线
}
//医院
public class HospitalInfo{
@AuraEnabled
public String id{get;set;}//医院id
@AuraEnabled
public String name{get;set;}//医院名称
@AuraEnabled
public String hospitalCode{get;set;}//医院Code
@AuraEnabled
public String hospitalLevel{get;set;}//医院等级
@AuraEnabled
public String hospitalTag{get;set;}//备选字段
@AuraEnabled
public String province{get;set;}//省份
@AuraEnabled
public String city{get;set;}//城市
@AuraEnabled
public String address{get;set;}//详细地址
@AuraEnabled
public String description{get{return address;}}//详细地址
@AuraEnabled
public String region{get;set;}//大区
@AuraEnabled
public String district{get;set;}//小区
@AuraEnabled
public String position{get;set;}//岗位
@AuraEnabled
public String positionUid{get;set;}//岗位ID
@AuraEnabled
public String productLine{get;set;}//产品线
}
//获取指定BU的所有销售相关的岗位
@AuraEnabled(cacheable=false)
public static List<Position_MDT_AP__c> getAllPostionDataAction(string BU)
{
string[] FYQW = MDT_AP_Utilities.ConvertToFYFQFW(System.today());
string fy = FYQW[0];
Integer fq = Integer.valueOf(FYQW[1]);
string version = fy + 'Q' + fq;
return [select Id,Name,Title_MDT_AP__c,Description_MDT_AP__c,Territory_UID_MDT_AP__c,Parent_Position_Id_MDT_AP__c,
(SELECT Employee_MDT_AP__r.FirstName,Employee_MDT_AP__r.LastName,Status_MDT_AP__c FROM Employee_Assignment__r WHERE Is_Active_MDT_AP__c=true ORDER BY Status_MDT_AP__c)
from Position_MDT_AP__c where BU_MDT_AP__c =:BU and Title_MDT_AP__c in:Titles and Is_Deleted_MDT_AP__c = false and Version_MDT_AP__c=:version order by Name];
}
//查询岗位名称及子集岗位名称
@AuraEnabled(cacheable=false)
public static List<Position_MDT_AP__c> GetSubPositions(string positionId,string BU)
{
string[] FYQW = MDT_AP_Utilities.ConvertToFYFQFW(System.today());
string fy = FYQW[0];
Integer fq = Integer.valueOf(FYQW[1]);
string version = fy + 'Q' + fq;
return [select Id,Name,Title_MDT_AP__c,Description_MDT_AP__c,Territory_UID_MDT_AP__c,
Parent_Position_Id_MDT_AP__c,Parent_Position_Id_MDT_AP__r.Name,
Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c,Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,
Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c,
Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c,
(SELECT Employee_MDT_AP__r.FirstName,Employee_MDT_AP__r.LastName,Status_MDT_AP__c FROM Employee_Assignment__r WHERE Is_Active_MDT_AP__c=true ORDER BY Status_MDT_AP__c)
from Position_MDT_AP__c where BU_MDT_AP__c =:BU and Title_MDT_AP__c in:Titles and Is_Deleted_MDT_AP__c = false and Version_MDT_AP__c=:version
and (Id=:positionId or Parent_Position_Id_MDT_AP__c =:positionId or Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c =:positionId
or Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c =:positionId
or Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c =:positionId)
order by Name];
}
//获取当前用户相关岗位
@AuraEnabled(cacheable=false)
public static List<Position> GetPositionDataAction(string BU)
{
Id userId = UserInfo.getUserId();
string[] FYQW = MDT_AP_Utilities.ConvertToFYFQFW(System.today());
string fy = FYQW[0];
Integer fq = Integer.valueOf(FYQW[1]);
string version = fy + 'Q' + fq;
return GetPositionData(userId,version,BU);
}
//根据岗位名字获取详情
@AuraEnabled(cacheable=false)
public static Position_MDT_AP__c GetPostionDataById(string positionId)
{
List<Position_MDT_AP__c> list_position = [select Id,Name,Title_MDT_AP__c,Description_MDT_AP__c,Product_Line_MDT_AP__c,Territory_UID_MDT_AP__c,
Parent_Position_Id_MDT_AP__c,Parent_Position_Id_MDT_AP__r.Name,Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,
(SELECT Employee_MDT_AP__r.FirstName,Employee_MDT_AP__r.LastName,Status_MDT_AP__c FROM Employee_Assignment__r WHERE Is_Active_MDT_AP__c=true ORDER BY Status_MDT_AP__c)
from Position_MDT_AP__c where Id =:positionId];
if(list_position.size() > 0)
return list_position[0];
else
return new Position_MDT_AP__c();
}
//根据岗位名字获取详情
@AuraEnabled(cacheable=false)
public static List<Position_MDT_AP__c> GetPostionDataByName(string positionName)
{
string[] FYQW = MDT_AP_Utilities.ConvertToFYFQFW(System.today());
string fy = FYQW[0];
Integer fq = Integer.valueOf(FYQW[1]);
string version = fy + 'Q' + fq;
return [select Id,Name,Title_MDT_AP__c,Description_MDT_AP__c,Product_Line_MDT_AP__c,Parent_Position_Id_MDT_AP__c,Territory_UID_MDT_AP__c,
(SELECT Employee_MDT_AP__r.FirstName,Employee_MDT_AP__r.LastName,Status_MDT_AP__c FROM Employee_Assignment__r WHERE Is_Active_MDT_AP__c=true ORDER BY Status_MDT_AP__c)
from Position_MDT_AP__c where Name=:positionName and Is_Deleted_MDT_AP__c = false and Version_MDT_AP__c=:version order by Name];
}
//根据用户ID获取对应的岗位信息
private static List<Position> GetPositionData(Id userId,string version,string BU)
{
List<Position> list_Position = new List<Position>();
List<Employee_Assignment_MDT_AP__c> list_EA = [select Employee_MDT_AP__c,Employee_MDT_AP__r.FirstName,Position_MDT_AP__c,Position_MDT_AP__r.Name,Status_MDT_AP__c,Position_MDT_AP__r.Product_Line_MDT_AP__c,
Position_MDT_AP__r.Title_MDT_AP__c,Position_MDT_AP__r.Description_MDT_AP__c,Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,
Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,Position_MDT_AP__r.Territory_UID_MDT_AP__c from Employee_Assignment_MDT_AP__c
where Version_MDT_AP__c=:version and Employee_MDT_AP__c=:userId and Position_MDT_AP__r.Title_MDT_AP__c in:Titles and Is_Active_MDT_AP__c = true and Position_MDT_AP__r.BU_MDT_AP__c =:BU and Position_MDT_AP__r.Is_Deleted_MDT_AP__c = false
order by Position_MDT_AP__r.Name];
for(Employee_Assignment_MDT_AP__c eAssignment :list_EA)
{
Position position = new Position();
position.tsrId = eAssignment.Employee_MDT_AP__c;
position.tsr = eAssignment.Employee_MDT_AP__r.FirstName;
//代岗人员显示名称为岗位上的描述字段
if(eAssignment.Status_MDT_AP__c == 'Delegation')
{
position.tsr = eAssignment.Position_MDT_AP__r.Description_MDT_AP__c;
}
position.title = eAssignment.Position_MDT_AP__r.Title_MDT_AP__c;
position.positionType = eAssignment.Status_MDT_AP__c;
position.productLine = eAssignment.Position_MDT_AP__r.Product_Line_MDT_AP__c;
position.id = eAssignment.Position_MDT_AP__c;
position.region = eAssignment.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
position.district = eAssignment.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
position.position = eAssignment.Position_MDT_AP__r.Name;
position.uid = eAssignment.Position_MDT_AP__r.Territory_UID_MDT_AP__c;
list_Position.add(position);
}
return list_Position;
}
//获取指定岗位的医院数据
@AuraEnabled(cacheable=false)
public static List<HospitalInfo> GetHospitalListAction(List<string> positionIds)
{
System.debug(positionIds);
List<HospitalInfo> list_hcp = new List<HospitalInfo>();
//查询医院id,医院名称,医院code,医院省份,医院城市,医院地址
List<Hospital_Alignment_MDT_AP__c> list_hospitalAlign = [select Hospital_MDT_AP__c,Hospital_MDT_AP__r.Name,Hospital_MDT_AP__r.Hospital_Code_MDT_AP__c,
tolabel(Hospital_MDT_AP__r.Shipping_State_Province_MDT_AP__c),tolabel(Hospital_MDT_AP__r.Shipping_City_MDT_AP__c),Hospital_MDT_AP__r.shippingstate,
Hospital_MDT_AP__r.shippingCity,Hospital_MDT_AP__r.shippingStreet,Position_MDT_AP__r.Name,Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,
Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,Position_MDT_AP__r.Product_Line_MDT_AP__c,Position_MDT_AP__r.Territory_UID_MDT_AP__c
from Hospital_Alignment_MDT_AP__c where Is_Active_MDT_AP__c=true and Position_MDT_AP__r.Is_Deleted_MDT_AP__c = false and
(Position_MDT_AP__c in:positionIds or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds)];
for(Hospital_Alignment_MDT_AP__c hospitalAlign : list_hospitalAlign)
{
HospitalInfo hcp = new HospitalInfo();
hcp.id = hospitalAlign.Hospital_MDT_AP__c;
hcp.name = hospitalAlign.Hospital_MDT_AP__r.Name;
hcp.hospitalCode = hospitalAlign.Hospital_MDT_AP__r.Hospital_Code_MDT_AP__c;
hcp.province = hospitalAlign.Hospital_MDT_AP__r.Shipping_State_Province_MDT_AP__c;
hcp.city = hospitalAlign.Hospital_MDT_AP__r.Shipping_City_MDT_AP__c;
hcp.address = hospitalAlign.Hospital_MDT_AP__r.shippingStreet;
hcp.region = hospitalAlign.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
hcp.district = hospitalAlign.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
hcp.position = hospitalAlign.Position_MDT_AP__r.Name;
hcp.positionUid = hospitalAlign.Position_MDT_AP__r.Territory_UID_MDT_AP__c;
hcp.productLine = hospitalAlign.Position_MDT_AP__r.Product_Line_MDT_AP__c;
list_hcp.add(hcp);
}
return list_hcp;
}
//获取指定岗位的医院数据
@AuraEnabled(cacheable=false)
public static List<HospitalInfo> GetHospitalListAction(List<string> positionIds,List<string> hospitalCodes)
{
System.debug(positionIds);
List<HospitalInfo> list_hcp = new List<HospitalInfo>();
//查询医院id,医院名称,医院code,医院省份,医院城市,医院地址
List<Hospital_Alignment_MDT_AP__c> list_hospitalAlign = [select Hospital_MDT_AP__c,Hospital_MDT_AP__r.Name,Hospital_MDT_AP__r.Hospital_Code_MDT_AP__c,
tolabel(Hospital_MDT_AP__r.Shipping_State_Province_MDT_AP__c),tolabel(Hospital_MDT_AP__r.Shipping_City_MDT_AP__c),Hospital_MDT_AP__r.shippingstate,
Hospital_MDT_AP__r.shippingCity,Hospital_MDT_AP__r.shippingStreet,Position_MDT_AP__r.Name,Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,
Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,Position_MDT_AP__r.Product_Line_MDT_AP__c,Position_MDT_AP__r.Territory_UID_MDT_AP__c
from Hospital_Alignment_MDT_AP__c where Is_Active_MDT_AP__c=true and
Hospital_MDT_AP__r.Hospital_Code_MDT_AP__c in:hospitalCodes and (Position_MDT_AP__c in:positionIds or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__c in:positionIds)];
for(Hospital_Alignment_MDT_AP__c hospitalAlign : list_hospitalAlign)
{
HospitalInfo hcp = new HospitalInfo();
hcp.id = hospitalAlign.Hospital_MDT_AP__c;
hcp.name = hospitalAlign.Hospital_MDT_AP__r.Name;
hcp.hospitalCode = hospitalAlign.Hospital_MDT_AP__r.Hospital_Code_MDT_AP__c;
hcp.province = hospitalAlign.Hospital_MDT_AP__r.Shipping_State_Province_MDT_AP__c;
hcp.city = hospitalAlign.Hospital_MDT_AP__r.Shipping_City_MDT_AP__c;
hcp.address = hospitalAlign.Hospital_MDT_AP__r.shippingStreet;
hcp.region = hospitalAlign.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
hcp.district = hospitalAlign.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
hcp.position = hospitalAlign.Position_MDT_AP__r.Name;
hcp.positionUid = hospitalAlign.Position_MDT_AP__r.Territory_UID_MDT_AP__c;
hcp.productLine = hospitalAlign.Position_MDT_AP__r.Product_Line_MDT_AP__c;
list_hcp.add(hcp);
}
return list_hcp;
}
//获取当前季度指定岗位的医院数据
@AuraEnabled(cacheable=false)
public static List<HospitalInfo> GetHospitalListByPosition(List<string> positionNames)
{
string[] FYQW = MDT_AP_Utilities.ConvertToFYFQFW(System.today());
string fy = FYQW[0];
Integer fq = Integer.valueOf(FYQW[1]);
string version = fy + 'Q' + fq;
List<HospitalInfo> list_hcp = new List<HospitalInfo>();
//查询医院id,医院名称,医院code,医院省份,医院城市,医院地址
List<Hospital_Alignment_MDT_AP__c> list_hospitalAlign = [select Hospital_MDT_AP__c,Hospital_MDT_AP__r.Name,Hospital_MDT_AP__r.Hospital_Code_MDT_AP__c,
tolabel(Hospital_MDT_AP__r.Shipping_State_Province_MDT_AP__c),tolabel(Hospital_MDT_AP__r.Shipping_City_MDT_AP__c),Hospital_MDT_AP__r.shippingstate,
Hospital_MDT_AP__r.shippingCity,Hospital_MDT_AP__r.shippingStreet,Position_MDT_AP__r.Name,Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,
Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name,Position_MDT_AP__r.Product_Line_MDT_AP__c,Position_MDT_AP__r.Territory_UID_MDT_AP__c
from Hospital_Alignment_MDT_AP__c where Is_Active_MDT_AP__c=true and
Position_MDT_AP__r.Version_MDT_AP__c=:version and (Position_MDT_AP__r.Name in:positionNames or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name in:positionNames
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name in:positionNames
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name in:positionNames
or Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name in:positionNames)];
for(Hospital_Alignment_MDT_AP__c hospitalAlign : list_hospitalAlign)
{
HospitalInfo hcp = new HospitalInfo();
hcp.id = hospitalAlign.Hospital_MDT_AP__c;
hcp.name = hospitalAlign.Hospital_MDT_AP__r.Name;
hcp.hospitalCode = hospitalAlign.Hospital_MDT_AP__r.Hospital_Code_MDT_AP__c;
hcp.province = hospitalAlign.Hospital_MDT_AP__r.Shipping_State_Province_MDT_AP__c;
hcp.city = hospitalAlign.Hospital_MDT_AP__r.Shipping_City_MDT_AP__c;
hcp.address = hospitalAlign.Hospital_MDT_AP__r.shippingStreet;
hcp.region = hospitalAlign.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
hcp.district = hospitalAlign.Position_MDT_AP__r.Parent_Position_Id_MDT_AP__r.Name;
hcp.position = hospitalAlign.Position_MDT_AP__r.Name;
hcp.positionUid = hospitalAlign.Position_MDT_AP__r.Territory_UID_MDT_AP__c;
hcp.productLine = hospitalAlign.Position_MDT_AP__r.Product_Line_MDT_AP__c;
list_hcp.add(hcp);
}
return list_hcp;
}
//获取最近3个财年数据集合
@AuraEnabled(cacheable=false)
public static List<FiscalYearSettings> GetFiscalYearSettings()
{
string[] FYQW = MDT_AP_Utilities.ConvertToFYFQFW(System.today());
Integer fy = Integer.valueOf(FYQW[0].replace('FY', ''));
List<String> fyNames = new List<String>();
for(Integer i=2;i>=0;i--)
{
fyNames.add('FY' + (fy - i));
}
List<FiscalYearSettings> fySettings = [Select
YearType,
StartDate,
EndDate,
PeriodId,
Name,
IsStandardYear,
Id,
Description,
(Select
Id,
Type,
StartDate,
EndDate,
IsForecastPeriod,
QuarterLabel,
PeriodLabel,
Number
From Periods ORDER BY Number)
From FiscalYearSettings
Where Name in :fyNames ORDER BY Name];
return fySettings;
}
//获取当前时间的财年财季财周
@AuraEnabled(cacheable=false)
public static string[] GetFYFQFWAction()
{
//FY20Q2 W2
string[] FYQW = MDT_AP_Utilities.ConvertToFYFQFW(System.today());
if(FYQW.size() == 4)
{
Integer fw = MDT_AP_Utilities.CovertFWToFWInQuarter(FYQW[0],Integer.valueOf(FYQW[1]),Integer.valueOf(FYQW[2]));
FYQW[0] = FYQW[0].replace('FY', '');
FYQW[2] = String.valueOf(fw);
}
return FYQW;
}
//获取指定季度的财周数量
public static Decimal GetQWeeks(Integer fy,Integer fq)
{
Date d1 = GetQEndDate(fy,fq);
String[] fys1 = MDT_AP_Utilities.ConvertToFYFQFW(d1);
Decimal weekNum = MDT_AP_Utilities.CovertFWToFWInQuarter(fys1[0],Integer.valueOf(fys1[1]),Integer.valueOf(fys1[2]));
return weekNum;
}
//获取指定季度的最后一天
public static Date GetQEndDate(Integer fy,Integer fq)
{
Integer nextFQ_fyInt = fy;
Integer nextFQ_fqInt = fq;
if(nextFQ_fqInt == 4){
nextFQ_fyInt = fy + 1;
nextFQ_fqInt = 1;
}else{
nextFQ_fyInt = fy;
nextFQ_fqInt = fq + 1;
}
Date d1 = MDT_AP_Utilities.CovertToFWStartDate('FY'+nextFQ_fyInt, nextFQ_fqInt, 1);
return d1.addDays(-1);
}
//省份翻译
public static string GetToLabelProvince(string province)
{
switch on province {
when 'Anhui' {
return '安徽省';
}
when 'Beijing'{
return '北京市';
}
when 'Chongqing'{
return '重庆市';
}
when 'Fujian'{
return '福建省';
}
when 'Gansu'{
return '甘肃省';
}
when 'Guangdong'{
return '广东省';
}
when 'Guangxi'{
return '广西壮族自治区';
}
when 'Guizhou'{
return '贵州省';
}
when 'Hainan'{
return '海南省';
}
when 'Hebei'{
return '河北省';
}
when 'Heilongjiang'{
return '黑龙江省';
}
when 'Henan'{
return '河南省';
}
when 'Hubei'{
return '湖北省';
}
when 'Hunan'{
return '湖南省';
}
when 'Inner Mongolia'{
return '内蒙古自治区';
}
when 'Jiangsu'{
return '江苏省';
}
when 'Jiangxi'{
return '江西省';
}
when 'Jilin'{
return '吉林省';
}
when 'Liaoning'{
return '辽宁省';
}
when 'Ningxia'{
return '宁夏回族自治区';
}
when 'Qinghai'{
return '青海省';
}
when 'Shaanxi'{
return '陕西省';
}
when 'Shandong'{
return '山东省';
}
when 'Shanghai'{
return '上海市';
}
when 'Shanxi'{
return '山西省';
}
when 'Sichuan'{
return '四川省';
}
when 'Tianjin'{
return '天津市';
}
when 'Tibet'{
return '西藏自治区';
}
when 'Xinjiang'{
return '新疆维吾尔族自治区';
}
when 'Yunnan'{
return '云南省';
}
when 'Zhejiang'{
return '浙江省';
}
}
return province;
}
//省份翻译
public static string GetTranslateProvince(string province)
{
switch on province {
when '安徽省'{
return 'Anhui';
}
when '北京市'{
return 'Beijing';
}
when '重庆市'{
return 'Chongqing';
}
when '福建省'{
return 'Fujian';
}
when '甘肃省'{
return 'Gansu';
}
when '广东省'{
return 'Guangdong';
}
when '广西壮族自治区'{
return 'Guangxi';
}
when '贵州省'{
return 'Guizhou';
}
when '海南省'{
return 'Hainan';
}
when '河北省'{
return 'Hebei';
}
when '黑龙江省'{
return 'Heilongjiang';
}
when '河南省'{
return 'Henan';
}
when '湖北省'{
return 'Hubei';
}
when '湖南省'{
return 'Hunan';
}
when '内蒙古自治区'{
return 'Inner Mongolia';
}
when '江苏省'{
return 'Jiangsu';
}
when '江西省'{
return 'Jiangxi';
}
when '吉林省'{
return 'Jilin';
}
when '辽宁省'{
return 'Liaoning';
}
when '宁夏回族自治区'{
return 'Ningxia';
}
when '青海省'{
return 'Qinghai';
}
when '陕西省'{
return 'Shaanxi';
}
when '山东省'{
return 'Shandong';
}
when '上海市'{
return 'Shanghai';
}
when '山西省'{
return 'Shanxi';
}
when '四川省'{
return 'Sichuan';
}
when '天津市'{
return 'Tianjin';
}
when '西藏自治区'{
return 'Tibet';
}
when '新疆维吾尔族自治区'{
return 'Xinjiang';
}
when '云南省'{
return 'Yunnan';
}
when '浙江省'{
return 'Zhejiang';
}
}
return province;
}
}
SOQL
周计划界面,里面有一个选择类型下拉框,一个具体内容,这两个字段需要传入后台,先在SOQL中查询一下
找到下拉框和具体内容对应的字段,分别为Form_Type_MDT_AP_CHN和Plan_Content_MDT_AP_CHN,注意在SOQL中查询时要加上__c后缀。
RecordTypeid为记录类型id,where条件为RecordType.developerName=‘Record Type Name(记录类型名)’
Record Type Name为MDT_AP_CHN_CAS_Week_Plan,
所以where条件可写
where RecordType.developerName = 'MDT_AP_CHN_CAS_Week_Plan'
综上所述:
select id,Form_Type_MDT_AP_CHN__c,Plan_Content_MDT_AP_CHN__c,RecordTypeid from Weekly_Plan_MDT_AP_CHN__c
where RecordType.developerName = 'MDT_AP_CHN_CAS_Week_Plan'
lwc优化&前后台交互
首页显示,目前页面上没有周计划数据
点击下方新建周计划按钮,进入创建周计划页面,需要实现的功能是在下拉框中选择某类型,然后在具体内容文本框中输入文本,点击保存按钮之后,将刚刚输入的财周计划内容在首页显示。
callServer(method, callback, params) {
method(params)
.then((result) => {
//console.log(result);
callback.call(this, result);
})
.catch((error) => {
//console.log(error);
this.showNotification("Error",error.body.message,"error");
});
}
//查询 选择类型与具体内容 字段
@AuraEnabled(cacheable=false)
public static List<Weekly_Plan_MDT_AP_CHN__c> GetChooseTypeDetail(){
List<Weekly_Plan_MDT_AP_CHN__c> list_choose_detail = [select id,Form_Type_MDT_AP_CHN__c,Plan_Content_MDT_AP_CHN__c,RecordTypeid from Weekly_Plan_MDT_AP_CHN__c where RecordType.developerName = 'MDT_AP_CHN_CAS_Week_Plan'];
return list_choose_detail;
}
调用callServer()方法,需要加this,callServer的第一个参数是一个方法名,此处是我查询下拉框和具体内容两个字段的查询方法名,
function(response)中的response是callServer的第一个参数中GetChooseTypeDetail()方法的返回值,返回List<Weekly_Plan_MDT_AP_CHN__c> ,也就是Weekly_Plan_MDT_AP_CHN__c的列表,故需要定义一个变量去接收这个列表 @track weekplanList = [ ];
注意:[ ]代表集合,{ }代表对象。
this.weekplanList = response;
GetChooseTypeDetail()不用传参数,所以第三个参数为空。
//显示周计划的内容到首页
showPlanContentToIndex (){
this.callServer(
GetChooseTypeDetail, //获取选择类型,具体内容-查询方法
function(response) { //response为GetChooseTypeDetail()返回值作为形参
this.weekplanList = response;
this.hiddenSpinnerEvent();
},
{} //GetChooseTypeDetail()不用传参数,所以第三个参数为空
);
}
注意GetChooseTypeDetail()方法是在ctrl_MDT_AP_CHN_CAS_Week_Plan.cls中写在,在lwc中引用需要先导入,即在lwc_mdt_ap_chn_week_plan_view.js中加入:
import GetChooseTypeDetail from "@salesforce/apex/ctrl_MDT_AP_CHN_CAS_Week_Plan.GetChooseTypeDetail";