Salesforce-项目总结

3 篇文章 0 订阅
2 篇文章 0 订阅

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";
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值