1.707接口bug修正和test覆盖率提升
2.会议决裁申请触发器处理类的修改和新增test类
2个文件已添加
3个文件已修改
396 ■■■■■ 已修改文件
force-app/main/default/classes/ApplicationForCAHandler.cls 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/ApplicationForCAHandlerTest.cls 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/ApplicationForCAHandlerTest.cls-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM707Rest.cls 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM707RestTest.cls 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/ApplicationForCAHandler.cls
@@ -37,7 +37,7 @@
        Map<String, String> app_cam_binds = new Map<String, String>();
        for (Application_for_Conference_Adjudication__c app : this.newList) {
            Application_for_Conference_Adjudication__c old_app = this.oldMap.get(app.Id);
            if (String.isNotBlank(old_app.Num__c) && !old_app.Num__c.equals(app.Num__c)) {
            if (String.isNotBlank(old_app.Num__c) && !old_app.Num__c.equals(app.Num__c) && app.MeetingType__c != '赞助会') {
                app_cam_binds.put(old_app.Id, old_app.Num__c);
            }
        }
@@ -59,7 +59,8 @@
        for (Application_for_Conference_Adjudication__c app : this.newList) {
            if (app.ProcessState__c == '驳回' || 
                app.ProcessState__c == '终止申请' || 
                app.ProcessState__c == '取消') {
                app.ProcessState__c == '取消' ||
                app.ProcessState__c == '删除') {
                    approved_nos.add(app.Id);
            }
        }
force-app/main/default/classes/ApplicationForCAHandlerTest.cls
New file
@@ -0,0 +1,305 @@
@isTest
public class ApplicationForCAHandlerTest {
    private static User setupUser(){
        User u = new User(alias = 'manager', email='manager@acme.com',
                emailencodingkey='UTF-8', lastname='manager',
                languagelocalekey='en_US',
                localesidkey='ja_JP', profileid = System.Label.ProfileId_SystemAdmin,
                timezonesidkey='Asia/Shanghai',
                username='manager@acme.com' + Datetime.now().getTime(),
                ZongjianApprovalManager__c =  UserInfo.getUserId()
            );
        insert u;
        return u;
    }
    static testMethod void test_update_1() {
        Application_for_Conference_Adjudication__c aca = new Application_for_Conference_Adjudication__c();
        aca.MeetingApprovedNo__c            = 'ME154P03-0012';
        aca.Name                            = 'ME154P03-0012'; // 用决裁编号替代名称
        aca.CampaignTheme__c                = 'obpm发起赞助决裁';
        aca.Num__c                          = 'test1';
        aca.StartDate__c                    = NFMUtil.parseDateTimeStr2Date('2022-04-19');
        aca.EndDate__c                      = NFMUtil.parseDateTimeStr2Date('2022-04-22');
        aca.BudgetType__c                   = '其他';
        aca.OfficeCategory__c               = '1.消化科';
        aca.MeetingType__c                  = '主办会';
        aca.StateMaster__c                  = '北京市';
        aca.CityMaster__c                   = '北京市';
        aca.WorkshopPlace__c                = 'CTEC';
        aca.HostName__c                     = '医学会';
        aca.CooperatorCompany__c            = '中华医学会';
        aca.ConveningParticipantsNum__c     = 0;
        aca.IsPaidToSponsor__c              = '否';
        aca.SponsorshipCategory__c          = '资金';
        aca.ExpectedOlympusAttendance__c    = 0;
        aca.ActivityTypeName__c             = '自主主办会';
        aca.ExpectedHcpAttendance__c        = 0;
        aca.ProcessState__c                 = '草稿';
        aca.Type_of_adjudication_meeting__c = '线下';
        aca.Activities_of_a_share__c        = '否';
        aca.IsSupplemental__c = true;
        insert aca;
        Campaign cam = new Campaign();
        Id RtId = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('Society').getRecordTypeId();
        // Id RtId2 = Schema.SObjectType.CampaignMember.getRecordTypeInfosByDeveloperName().get('WorkShop').getRecordTypeId();
        cam.RecordTypeId                     = RtId;
        // cam.CampaignMemberRecordTypeId       = RtId2;
        cam.Name                             = aca.MeetingApprovedNo__c;
        cam.Name2__c                         = aca.MeetingApprovedNo__c;
        cam.MeetingApprovedNo__c             = aca.MeetingApprovedNo__c;
        cam.Meeting_Approved_No__c           = aca.Id;
        cam.StartDate                        = aca.StartDate__c;
        cam.EndDate                          = aca.EndDate__c;
        cam.Budget_Type__c                   = aca.BudgetType__c;
        cam.OfficeCategory__c                = aca.OfficeCategory__c;
        cam.Meeting_Type__c                  = aca.MeetingType__c;
        cam.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam.WorkshopPlace__c                 = aca.WorkshopPlace__c;
        cam.HostName__c                      = aca.HostName__c;
        cam.cooperatorCompany__c             = aca.CooperatorCompany__c;
        cam.Convening_Participants_Num__c    = aca.ConveningParticipantsNum__c;
        cam.IF_Approved__c                   = true;
        // OBPM对接 新增字段
        cam.Expected_Olympus_Attendance__c   = aca.ExpectedOlympusAttendance__c;
        cam.Expected_Hcp_Attendance__c       = aca.ExpectedHcpAttendance__c;
        cam.SponsorshipCategory__c           = aca.SponsorshipCategory__c;
        cam.IsPaidToSponsor__c               = aca.IsPaidToSponsor__c;
        cam.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam.Is_LendProduct__c                = '是';
        cam.PlanBackData__c                  = NFMUtil.parseDateTimeStr2Date('2022-04-30');
        cam.LoadNum__c                       = 'CV-290*1; GI-290镜子*1;';
        insert cam;
        User u = setupUser();
        System.runAs(u){
            Test.startTest();
            OPDPlan__c opd = new OPDPlan__c();
            opd.OPDPlan_ImplementDate_temp__c  =  cam.StartDate ;
            opd.Campaign__c = cam.Id ;
            opd.Status__c = '计划中';
            opd.OwnerId = cam.OwnerId;
            opd.PlanProdDetail__c = cam.LoadNum__c;
            opd.OPDType__c = '学会';
            // opd.Meeting_Cooperate__c = cam.Meeting_Cooperate__c;
            // opd.Meeting_Cooperate2__c = cam.Meeting_Cooperate2__c;
            // opd.Meeting_Cooperate3__c = cam.Meeting_Cooperate3__c;
            // opd.Meeting_Cooperate4__c = cam.Meeting_Cooperate4__c;
            // opd.Open_scope__c = cam.Open_scope__c;
            opd.IF_Approved__c = cam.IF_Approved__c;//是否申请决裁
            opd.Approved_Status__c = cam.Approved_Status__c;//决裁状态
            opd.Approved_No__c = cam.Meeting_Approved_No__c;
            opd.OwnerId = u.Id;
            insert opd;
            aca.ProcessState__c = '审批成功';
            aca.Num__c = cam.Num__c;
            update aca;
            Test.stopTest();
        }
    }
    static testMethod void test_update_2() {
        Application_for_Conference_Adjudication__c aca = new Application_for_Conference_Adjudication__c();
        aca.MeetingApprovedNo__c            = 'ME154P03-0012';
        aca.Name                            = 'ME154P03-0012'; // 用决裁编号替代名称
        aca.CampaignTheme__c                = 'obpm发起赞助决裁';
        aca.Num__c                          = 'test1';
        aca.StartDate__c                    = NFMUtil.parseDateTimeStr2Date('2022-04-19');
        aca.EndDate__c                      = NFMUtil.parseDateTimeStr2Date('2022-04-22');
        aca.BudgetType__c                   = '其他';
        aca.OfficeCategory__c               = '1.消化科';
        aca.MeetingType__c                  = '主办会';
        aca.StateMaster__c                  = '北京市';
        aca.CityMaster__c                   = '北京市';
        aca.WorkshopPlace__c                = 'CTEC';
        aca.HostName__c                     = '医学会';
        aca.CooperatorCompany__c            = '中华医学会';
        aca.ConveningParticipantsNum__c     = 0;
        aca.IsPaidToSponsor__c              = '否';
        aca.SponsorshipCategory__c          = '资金';
        aca.ExpectedOlympusAttendance__c    = 0;
        aca.ActivityTypeName__c             = '自主主办会';
        aca.ExpectedHcpAttendance__c        = 0;
        aca.ProcessState__c                 = '草稿';
        aca.Type_of_adjudication_meeting__c = '线下';
        aca.Activities_of_a_share__c        = '否';
        aca.IsSupplemental__c = false;
        insert aca;
        Campaign cam = new Campaign();
        Id RtId = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('Society').getRecordTypeId();
        // Id RtId2 = Schema.SObjectType.CampaignMember.getRecordTypeInfosByDeveloperName().get('WorkShop').getRecordTypeId();
        cam.RecordTypeId                     = RtId;
        // cam.CampaignMemberRecordTypeId       = RtId2;
        cam.Name                             = aca.MeetingApprovedNo__c;
        cam.Name2__c                         = aca.MeetingApprovedNo__c;
        cam.MeetingApprovedNo__c             = aca.MeetingApprovedNo__c;
        cam.Meeting_Approved_No__c           = aca.Id;
        cam.StartDate                        = aca.StartDate__c;
        cam.EndDate                          = aca.EndDate__c;
        cam.Budget_Type__c                   = aca.BudgetType__c;
        cam.OfficeCategory__c                = aca.OfficeCategory__c;
        cam.Meeting_Type__c                  = aca.MeetingType__c;
        cam.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam.WorkshopPlace__c                 = aca.WorkshopPlace__c;
        cam.HostName__c                      = aca.HostName__c;
        cam.cooperatorCompany__c             = aca.CooperatorCompany__c;
        cam.Convening_Participants_Num__c    = aca.ConveningParticipantsNum__c;
        cam.IF_Approved__c                   = true;
        // OBPM对接 新增字段
        cam.Expected_Olympus_Attendance__c   = aca.ExpectedOlympusAttendance__c;
        cam.Expected_Hcp_Attendance__c       = aca.ExpectedHcpAttendance__c;
        cam.SponsorshipCategory__c           = aca.SponsorshipCategory__c;
        cam.IsPaidToSponsor__c               = aca.IsPaidToSponsor__c;
        cam.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam.Is_LendProduct__c                = '是';
        cam.PlanBackData__c                  = NFMUtil.parseDateTimeStr2Date('2022-04-30');
        cam.LoadNum__c                       = 'CV-290*1; GI-290镜子*1;';
        insert cam;
        User u = setupUser();
        OPDPlan__c opd = new OPDPlan__c();
        opd.OPDPlan_ImplementDate_temp__c  =  cam.StartDate ;
        opd.Campaign__c = cam.Id ;
        opd.Status__c = '计划中';
        opd.OwnerId = cam.OwnerId;
        opd.PlanProdDetail__c = cam.LoadNum__c;
        opd.OPDType__c = '学会';
        // opd.Meeting_Cooperate__c = cam.Meeting_Cooperate__c;
        // opd.Meeting_Cooperate2__c = cam.Meeting_Cooperate2__c;
        // opd.Meeting_Cooperate3__c = cam.Meeting_Cooperate3__c;
        // opd.Meeting_Cooperate4__c = cam.Meeting_Cooperate4__c;
        // opd.Open_scope__c = cam.Open_scope__c;
        opd.IF_Approved__c = cam.IF_Approved__c;//是否申请决裁
        opd.Approved_Status__c = cam.Approved_Status__c;//决裁状态
        opd.Approved_No__c = aca.Id;
        opd.OwnerId = u.Id;
        insert opd;
        aca.ProcessState__c = '驳回';
        aca.Num__c = cam.Num__c;
        update aca;
    }
    static testMethod void test_update_3() {
        Application_for_Conference_Adjudication__c aca = new Application_for_Conference_Adjudication__c();
        aca.MeetingApprovedNo__c            = 'ME154P03-0012';
        aca.Name                            = 'ME154P03-0012'; // 用决裁编号替代名称
        aca.CampaignTheme__c                = 'obpm发起赞助决裁';
        aca.Num__c                          = 'test1';
        aca.StartDate__c                    = NFMUtil.parseDateTimeStr2Date('2022-04-19');
        aca.EndDate__c                      = NFMUtil.parseDateTimeStr2Date('2022-04-22');
        aca.BudgetType__c                   = '其他';
        aca.OfficeCategory__c               = '1.消化科';
        aca.MeetingType__c                  = '主办会';
        aca.StateMaster__c                  = '北京市';
        aca.CityMaster__c                   = '北京市';
        aca.WorkshopPlace__c                = 'CTEC';
        aca.HostName__c                     = '医学会';
        aca.CooperatorCompany__c            = '中华医学会';
        aca.ConveningParticipantsNum__c     = 0;
        aca.IsPaidToSponsor__c              = '否';
        aca.SponsorshipCategory__c          = '资金';
        aca.ExpectedOlympusAttendance__c    = 0;
        aca.ActivityTypeName__c             = '自主主办会';
        aca.ExpectedHcpAttendance__c        = 0;
        aca.ProcessState__c                 = '草稿';
        aca.Type_of_adjudication_meeting__c = '线下';
        aca.Activities_of_a_share__c        = '否';
        aca.IsSupplemental__c = false;
        insert aca;
        Campaign cam = new Campaign();
        Id RtId = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('Society').getRecordTypeId();
        // Id RtId2 = Schema.SObjectType.CampaignMember.getRecordTypeInfosByDeveloperName().get('WorkShop').getRecordTypeId();
        cam.RecordTypeId                     = RtId;
        // cam.CampaignMemberRecordTypeId       = RtId2;
        cam.Name                             = aca.MeetingApprovedNo__c;
        cam.Name2__c                         = aca.MeetingApprovedNo__c;
        cam.MeetingApprovedNo__c             = aca.MeetingApprovedNo__c;
        cam.Meeting_Approved_No__c           = aca.Id;
        cam.StartDate                        = aca.StartDate__c;
        cam.EndDate                          = aca.EndDate__c;
        cam.Budget_Type__c                   = aca.BudgetType__c;
        cam.OfficeCategory__c                = aca.OfficeCategory__c;
        cam.Meeting_Type__c                  = aca.MeetingType__c;
        cam.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam.WorkshopPlace__c                 = aca.WorkshopPlace__c;
        cam.HostName__c                      = aca.HostName__c;
        cam.cooperatorCompany__c             = aca.CooperatorCompany__c;
        cam.Convening_Participants_Num__c    = aca.ConveningParticipantsNum__c;
        cam.IF_Approved__c                   = true;
        // OBPM对接 新增字段
        cam.Expected_Olympus_Attendance__c   = aca.ExpectedOlympusAttendance__c;
        cam.Expected_Hcp_Attendance__c       = aca.ExpectedHcpAttendance__c;
        cam.SponsorshipCategory__c           = aca.SponsorshipCategory__c;
        cam.IsPaidToSponsor__c               = aca.IsPaidToSponsor__c;
        cam.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam.Is_LendProduct__c                = '是';
        cam.PlanBackData__c                  = NFMUtil.parseDateTimeStr2Date('2022-04-30');
        cam.LoadNum__c                       = 'CV-290*1; GI-290镜子*1;';
        cam.Num__c                           = 'test1';
        insert cam;
        Campaign cam_n = new Campaign();
        cam_n.RecordTypeId                     = RtId;
        // cam_n.CampaignMemberRecordTypeId       = RtId2;
        cam_n.Name                             = aca.MeetingApprovedNo__c;
        cam_n.Name2__c                         = aca.MeetingApprovedNo__c;
        cam_n.MeetingApprovedNo__c             = aca.MeetingApprovedNo__c;
        cam_n.Meeting_Approved_No__c           = aca.Id;
        cam_n.StartDate                        = aca.StartDate__c;
        cam_n.EndDate                          = aca.EndDate__c;
        cam_n.Budget_Type__c                   = aca.BudgetType__c;
        cam_n.OfficeCategory__c                = aca.OfficeCategory__c;
        cam_n.Meeting_Type__c                  = aca.MeetingType__c;
        cam_n.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam_n.WorkshopPlace__c                 = aca.WorkshopPlace__c;
        cam_n.HostName__c                      = aca.HostName__c;
        cam_n.cooperatorCompany__c             = aca.CooperatorCompany__c;
        cam_n.Convening_Participants_Num__c    = aca.ConveningParticipantsNum__c;
        cam_n.IF_Approved__c                   = true;
        // OBPM对接 新增字段
        cam_n.Expected_Olympus_Attendance__c   = aca.ExpectedOlympusAttendance__c;
        cam_n.Expected_Hcp_Attendance__c       = aca.ExpectedHcpAttendance__c;
        cam_n.SponsorshipCategory__c           = aca.SponsorshipCategory__c;
        cam_n.IsPaidToSponsor__c               = aca.IsPaidToSponsor__c;
        cam_n.Activity_Type_Name__c            = aca.ActivityTypeName__c;
        cam_n.Is_LendProduct__c                = '是';
        cam_n.PlanBackData__c                  = NFMUtil.parseDateTimeStr2Date('2022-04-30');
        cam_n.LoadNum__c                       = 'CV-290*1; GI-290镜子*1;';
        cam_n.Num__c                           = 'test2';
        insert cam_n;
        aca.Num__c = cam.Num__c;
        update aca;
        aca.Num__c = cam_n.Num__c;
        update aca;
    }
}
force-app/main/default/classes/ApplicationForCAHandlerTest.cls-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>52.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/classes/NFM707Rest.cls
@@ -135,15 +135,20 @@
                // if (campaignMap.size() > 0) {
                //     update campaignMap.values();
                // }
                List<Campaign> camNoList = [select id,Num__c,MeetingApprovedNo__c,Meeting_Approved_No__c, CampaignStatus__c
                List<Campaign> camNoList = [select id,Num__c,MeetingApprovedNo__c,Meeting_Approved_No__c, Meeting_Approved_No__r.MeetingApprovedNo__c, CampaignStatus__c
                                    from Campaign 
                                    where MeetingApprovedNo__c in: camList and CampaignStatus__c = '会议结束'];
                                    where Meeting_Approved_No__r.MeetingApprovedNo__c in: camList and CampaignStatus__c = '会议结束'];
                // System.debug(camNoList);
                if (camNoList != null && camNoList.size() > 0) {
                    List<String> cam_ids = new List<String>();
                    for(Campaign cam : camNoList) {
                        // System.debug('cam: ' + cam.Num__c + '|' + cam.Meeting_Approved_No__c + '|' + cam.Meeting_Approved_No__r.MeetingApprovedNo__c);
                        Application_for_Conference_Adjudication__c app = acaMap.get(cam.Meeting_Approved_No__r.MeetingApprovedNo__c);
                        // System.debug('app: ' + (app != null ? app.Id : 'null'));
                        cam_ids.add(cam.id);
                        for (Result_for_Conference_Adjudication__c rca : rcaList) {
                            if (cam.Meeting_Approved_No__c == rca.Application_for_Conference_Adjudication__c) {
                            // System.debug('rca: ' + rca.Application_for_Conference_Adjudication__c);
                            if (cam.Meeting_Approved_No__c == rca.Application_for_Conference_Adjudication__c || (app != null && app.Id == rca.Application_for_Conference_Adjudication__c)) {
                                // 更新会议日程
                                cam.Meeting_Report__c = rca.Id;
                                cam.Society_Hold_Place__c = rca.SocietyHoldPlace__c;
force-app/main/default/classes/NFM707RestTest.cls
@@ -236,4 +236,74 @@
        NFM707Rest.execute();
        Test.stopTest();
    }
    @isTest
    static void test_8(){
        Test.startTest();
        RestRequest req = new RestRequest();
        RestResponse res = new RestResponse();
        OCM_Management_Province__c mp1 = new OCM_Management_Province__c();
        mp1.Name = '其他';
        mp1.Province__c = '北京市';
        mp1.Window1__c = getUser().Id;
        insert mp1;
        List<Application_for_Conference_Adjudication__c> afcList = [select id,MeetingApprovedNo__c from Application_for_Conference_Adjudication__c];
        // System.assertEquals(null, afcList);
        // System.assertEquals('202112161007', afcList[0].MeetingApprovedNo__c);
        StaticParameter.EscapeCampain =false;
        StaticParameter.shareToOSCMFlag = false;
        Campaign cam = new Campaign();
        cam.Name = 'test campaign';
        cam.StartDate = Date.newInstance(2020,10,29);
        cam.EndDate = Date.newInstance(2020,11,29);
        cam.Name2__c = '1234';
        cam.Status = '公开中';
        cam.Mailflg_after45__c = true;
        cam.Mailflg_cancel__c = true;
        cam.Mailflg_before15__c = true;
        cam.Mailflg_before7__c = true;
        cam.Mailflg_after3__c = true;
        cam.HostName__c = '1';
        cam.cooperatorCompany__c = '1';
        // cam.CampaignStatus__c = '会议结束';
        cam.Num__c = '6666';
        cam.MeetingApprovedNo__c = '202112161007';
        cam.Meeting_Approved_No__c = afcList[0].Id;
        cam.RecordTypeId = System.label.RecordType_CampaignService;
        // cam.OwnerId = getUser().Id;
        insert cam;
        OPDPlan__c opd = new OPDPlan__c();
        opd.OPDPlan_ImplementDate_temp__c  =  cam.StartDate ;
        opd.Campaign__c = cam.Id ;
        opd.Status__c = '计划中';
        opd.OwnerId = cam.OwnerId;
        opd.PlanProdDetail__c = cam.LoadNum__c;
        opd.OPDType__c = '学会';
        // opd.Meeting_Cooperate__c = cam.Meeting_Cooperate__c;
        // opd.Meeting_Cooperate2__c = cam.Meeting_Cooperate2__c;
        // opd.Meeting_Cooperate3__c = cam.Meeting_Cooperate3__c;
        // opd.Meeting_Cooperate4__c = cam.Meeting_Cooperate4__c;
        // opd.Open_scope__c = cam.Open_scope__c;
        opd.IF_Approved__c = cam.IF_Approved__c;//是否申请决裁
        opd.Approved_Status__c = cam.Approved_Status__c;//决裁状态
        opd.Approved_No__c = cam.Meeting_Approved_No__c;
        opd.OwnerId = mp1.Window1__c;
        insert opd;
        // List<Campaign> cammList = [select id,CampaignStatus__c from Campaign where Id = :cam.Id];
        // System.assertEquals(null, cammList);
        // String JsonMsg = '[{"SocietyHoldPlace":"ceshi5","Publicity":"ceshi0","Num":"","MeetingApprovedNo":"202112161007","Competitor":"ceshi3"}]';
        String JsonMsg = '{"Monitoring":{"TransmissionDateTime":"202112151103","Text":null,"Tag":null,"Sender":"OBPM","Receiver":"SFDC","NumberOfRecord":"1","MessageType":"NFM707","MessageGroupNumber":null},"GeData":[{"SocietyHoldPlace":"ceshi5","Publicity":"ceshi4","Num":"6666","MeetingApprovedNo":"202112161007","Competitor":"ceshi3"}]}';
        req.requestURI = 'services/apexrest/NFM707/execute';
        req.httpMethod = 'POST';
        req.requestBody = Blob.valueof(JsonMsg);
        RestContext.request = req;
        RestContext.response= res;
        NFM707Rest.execute();
        Test.stopTest();
    }
}