/** * wangweipeng 20210705 * OPDStrategyPersonShareBatch * OPD计划模块增加共享给战略科室所有人的batch测试程序 */ @isTest private class OPDStrategyPersonShareBatchTest { @isTest static void testMethod1() { user UserTeamMember1 = New User( Alias = '张三', Alias__c = '张三', Email='TeamMember1@testorg.com', EmailEncodingKey='UTF-8', LastName='张', Firstname ='三', LanguageLocaleKey='zh_CN', LocaleSidKey='zh_CN', ProfileId = System.Label.ProfileId_SystemAdmin, TimeZoneSidKey='Asia/Shanghai', UserName='zhangsan@testorg.com'); insert UserTeamMember1; user UserTeamMember2 = New User( Alias = '李四', Alias__c = '李四', Email='lisi@testorg.com', EmailEncodingKey='UTF-8', LastName='李', Firstname ='四', LanguageLocaleKey='zh_CN', LocaleSidKey='zh_CN', ProfileId = System.Label.ProfileId_SystemAdmin, TimeZoneSidKey='Asia/Shanghai', UserName='lisi@testorg.com'); insert UserTeamMember2; // recode type を取得 List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { return; } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 消化科']; if (rectSct.size() == 0) { return; } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科']; if (rectDpt.size() == 0) { return; } Account company = new Account( name = 'Test Hospital', RecordTypeId = rectCo[0].Id, OCM_Category__c = 'OCM_Test', Is_Active__c ='有効', GI_Product_Leader__c = '张三,李四', GS_Product_Leader__c = '张三,李四', GYN_Product_Leader__c = '张三,李四', ET_Product_Leader__c = '张三,李四', URO_Produc_Leader__c = '张三,李四', BF_Product_Leader__c = '张三,李四', ENT_Product_Leader__c = '张三,李四', FSE_GI_Vice_Leader__c = '张三,李四', FSE_SP_Vice_Leader__c = '张三,李四', Energy_LeaderStr__c = '张三,李四', FSE_Extend_viceLeaderStr__c = '张三,李四' ); insert company; //战略科室级别 Account section = [Select id,Name, Department_Class_Label__c, OwnerId, ParentId, Hospital_Department_Class__c from Account where ParentId =: company.Id and RecordTypeId =: rectSct[0].Id]; System.assertEquals('消化科', section.Department_Class_Label__c); //科室级别 Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = 'NFM001TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; depart.Department_Class_Label__c = rectSct[0].Id; insert depart; // チーム追加 Profile p = [select Id from Profile where id =: System.Label.ProfileId_SystemAdmin]; User u1 = new User(Test_staff__c = true); u1.LastName = '_サンブリッジ'; u1.FirstName = 'あ'; u1.Alias = 'あ'; u1.Email = 'olympusTest01@sunbridge.com'; u1.Username = 'olympusTest01@sunbridge.com'; u1.CommunityNickname = 'あ'; u1.IsActive = true; u1.EmailEncodingKey = 'ISO-2022-JP'; u1.TimeZoneSidKey = 'Asia/Tokyo'; u1.LocaleSidKey = 'ja_JP'; u1.LanguageLocaleKey = 'ja'; u1.ProfileId = p.Id; u1.Job_Category__c = '销售服务'; u1.Province__c = '東京'; u1.Use_Start_Date__c = Date.today().addMonths(-6); insert u1; User u2 = new User(Test_staff__c = true); u2.LastName = '_サンブリッジ'; u2.FirstName = 'い'; u2.Alias = 'い'; u2.Email = 'olympusTest02@sunbridge.com'; u2.Username = 'olympusTest02@sunbridge.com'; u2.CommunityNickname = 'い'; u2.IsActive = true; u2.EmailEncodingKey = 'ISO-2022-JP'; u2.TimeZoneSidKey = 'Asia/Tokyo'; u2.LocaleSidKey = 'ja_JP'; u2.LanguageLocaleKey = 'ja'; u2.ProfileId = p.Id; u2.Job_Category__c = '销售推广'; u2.Province__c = '東京'; u1.Use_Start_Date__c = Date.today().addMonths(-6); insert u2; //opd计划 数据创建 OPDPlan__c oc = new OPDPlan__c(); oc.Status__c = '完毕未报告'; oc.OPDPlan_ImplementDate__c = Date.today().addDays(1); oc.NoOpp_Reason__c = 'HCP对应'; oc.OwnerId = u2.id; oc.Account_Laboratory__c = depart.id;//科室 //oc.Department_owner__c = u1.id; insert oc; //opd 共享计划创建 OPDPlan__Share ras = new OPDPlan__Share(); ras.RowCause= 'AccountOwnerShare__c';//手动 ras.ParentId = oc.id; ras.UserOrGroupId = u1.id; ras.AccessLevel = 'Edit';//编辑 insert ras; List listId = new List(); listId.add(oc.id); Id execBTId = Database.executeBatch(new OPDStrategyPersonShareBatch(listId), 200); //opd计划 数据创建 OPDPlan__c occ = new OPDPlan__c(); occ.Status__c = '完毕未报告'; occ.OPDPlan_ImplementDate__c = Date.today().addDays(1); occ.NoOpp_Reason__c = 'HCP对应'; occ.Share_one_id__c = oc.id; occ.Share_Produc_Leader__c = UserTeamMember2.id; occ.OwnerId = u2.id; occ.Account_Laboratory__c = depart.id;//科室 //oc.Department_owner__c = u1.id; insert occ; //opd 共享计划创建 OPDPlan__Share rass = new OPDPlan__Share(); rass.RowCause= 'AccountOwnerShare__c';//手动 rass.ParentId = occ.id; rass.UserOrGroupId = u1.id; rass.AccessLevel = 'Edit';//编辑 insert rass; Opportunity opp1 = new Opportunity( Name='testOpp1', StageName='引合', CloseDate=Date.today(), AccountId=depart.Id, Competitor__c ='A', Click_Close_Date__c = null, RecordType = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ] ); insert opp1; Rental_Apply__c raObj1 = new Rental_Apply__c(); raObj1.Rental_Start_Date__c = Date.today().addDays(1); raObj1.Request_return_day__c=Date.today().addDays(5); raObj1.DataMigration_Flag__c = true; raObj1.demo_purpose2__c = 'ceshi'; raObj1.Follow_UP_Opp__c = opp1.Id; raObj1.Account__c = depart.Id; raObj1.Status__c = '已批准'; raObj1.OPDPlan__c = occ.id; insert raObj1; Rental_Apply__c raObj = new Rental_Apply__c(); raObj.Rental_Start_Date__c = Date.today().addDays(1); raObj.Request_return_day__c=Date.today().addDays(5); raObj.DataMigration_Flag__c = true; raObj.demo_purpose2__c = '试用(有询价)'; raObj.Old_Rental_Apply__c = raObj1.id; raObj.Account__c = depart.Id; raObj.Follow_UP_Opp__c = opp1.Id; //raObj.OPD_Share_one_id__c = occ.id; raObj.Status__c = '已批准'; raObj.OPDPlan__c = occ.id; insert raObj; Database.executeBatch(new OPDStrategyPersonShareBatch(), 200); } }