@isTest private class ConsumablesApplyOrLendBatchTest { static Account createHospital( String hospitalName) { StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001Trigger = true; // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'HP'].id; hospital.GI_Product_Leader__c = '张三,陈华君,赵四,王五'; hospital.BF_Product_Leader__c = '张三,陈华君,赵四,王五'; hospital.GS_Product_Leader__c = '张三,陈华君,赵四,王五'; hospital.URO_Produc_Leader__c = '张三,陈华君,赵四,王五'; hospital.GYN_Product_Leader__c = '张三,陈华君,赵四,王五'; hospital.ENT_Product_Leader__c = '张三,陈华君,赵四,王五'; hospital.ET_Product_Leader__c = '张三,陈华君,赵四,王五'; hospital.Name = hospitalName; insert hospital; StaticParameter.EscapeAccountTrigger = true; return hospital; } static List selectStrategicDep( Account hospital) { // 戦略科室を得る List strategicDep = [SELECT ID, Name,OwnerId FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_GI']; return strategicDep; } static Account createDep( Account hospital, Account strategicDep) { // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'Department_GI'].id; dep.Name = 'test dep'; dep.ParentId = strategicDep.Id; dep.Department_Class__c = strategicDep.Id; dep.Hospital__c = hospital.Id; // dep.State_Text__c = '上海市'; insert dep; return dep; } static testMethod void testMethod1() { // 病院、戦略科室、診療科の情報を作成します Account hospital = createHospital( 'test hospital'); Account[] strategicDep = selectStrategicDep( hospital); Account dep = createDep( hospital, strategicDep[0]); OPDPlan__c oPDPlan0 = new OPDPlan__c(); oPDPlan0.Status__c = '完毕未报告'; oPDPlan0.OPDPlan_ImplementDate__c = Date.today().addDays(1); oPDPlan0.NoOpp_Reason__c = 'HCP对应'; insert oPDPlan0; Rental_Apply__c ra1 = new Rental_Apply__c(); ra1.Name = 'test'; //ra1.applyUser__c = user.Id; ra1.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal()); ra1.demo_purpose1__c = '其他'; ra1.demo_purpose2__c = '其他'; ra1.Request_shipping_day__c = Date.today().addDays(3); ra1.Hope_Lonaer_date_Num__c = 6; //ra1.Repair__c = repair01.Id; ra1.Hospital__c = hospital.Id; ra1.Strategic_dept__c = strategicDep[0].Id; ra1.Account__c = dep.Id; ra1.OPDPlan__c = oPDPlan0.id; insert ra1; List raList = [SELECT id,OwnerId,Approver_of_Service_Department__c,Strategic_user__c,Strategic_dept__c,ShareStrategicUser__c FROM Rental_Apply__c WHERE Id = :ra1.Id ]; System.assertEquals(1, raList.size()); List user = [select Id,Name from User where IsActive = true]; strategicDep[0].OwnerId = user[0].Id; update strategicDep; System.Test.startTest(); Database.executeBatch(new ConsumablesApplyOrLendBatch(),1); strategicDep[0].OwnerId = user[1].Id; update strategicDep; Database.executeBatch(new ConsumablesApplyOrLendBatch(strategicDep[0].id),1); System.Test.stopTest(); } //add by rentx 2020-12-04 start static testMethod void testMethod2(){ // 病院、戦略科室、診療科の情報を作成します Account hospital = createHospital( 'test hospital'); Account[] strategicDep = selectStrategicDep( hospital); Account dep = createDep( hospital, strategicDep[0]); OPDPlan__c oPDPlan0 = new OPDPlan__c(); oPDPlan0.Status__c = '完毕未报告'; oPDPlan0.OPDPlan_ImplementDate__c = Date.today().addDays(1); oPDPlan0.NoOpp_Reason__c = 'HCP对应'; insert oPDPlan0; Rental_Apply__c ra1 = new Rental_Apply__c(); ra1.Name = 'test'; ra1.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal()); ra1.demo_purpose1__c = '其他'; ra1.demo_purpose2__c = '其他'; ra1.Request_shipping_day__c = Date.today().addDays(3); ra1.Hope_Lonaer_date_Num__c = 6; ra1.Hospital__c = hospital.Id; ra1.Strategic_dept__c = strategicDep[0].Id; ra1.Account__c = dep.Id; ra1.OPDPlan__c = oPDPlan0.id; insert ra1; List raList = [SELECT id,OwnerId,Approver_of_Service_Department__c,Strategic_user__c,Strategic_dept__c,ShareStrategicUser__c FROM Rental_Apply__c WHERE Id = :ra1.Id ]; System.assertEquals(1, raList.size()); List user = [select Id,Name,Job_Category__c from User where IsActive = true AND Job_Category__c = '销售服务']; // List user1 = [select Id,Name from User where IsActive = true AND Job_Category__c = '销售服务']; strategicDep[0].OwnerId = user[0].Id; strategicDep[0].Department_Class_Label__c = '消化科'; update strategicDep; hospital.FSE_GI_Main_Leader__c = user[1].Id; hospital.FSE_SP_Main_Leader__c = user[1].Id; update hospital; // User user1 = new User(); // for (User u :user ) { // if (u.Job_Category__c== '销售服务') { // user1 = u; // } // } ra1.Person_In_Charge__c = user[2].Id; update ra1; System.debug('OCM_dept_category__c::'+ra1.OCM_dept_category__c); System.debug('Job_Category__c::'+ra1.Job_Category__c); System.debug('Strategic_userFSEGI__c::'+ra1.Strategic_userFSEGI__c); System.Test.startTest(); Database.executeBatch(new ConsumablesApplyOrLendBatch(),1); // strategicDep[0].OwnerId = user[1].Id; // strategicDep[0].Department_Class_Label__c = '其他'; // update strategicDep; // Database.executeBatch(new ConsumablesApplyOrLendBatch(strategicDep[0].id),1); System.Test.stopTest(); } static testMethod void testMethod3(){ // 病院、戦略科室、診療科の情報を作成します Account hospital = createHospital( 'test hospital'); Account[] strategicDep = selectStrategicDep( hospital); Account dep = createDep( hospital, strategicDep[0]); OPDPlan__c oPDPlan0 = new OPDPlan__c(); oPDPlan0.Status__c = '完毕未报告'; oPDPlan0.OPDPlan_ImplementDate__c = Date.today().addDays(1); oPDPlan0.NoOpp_Reason__c = 'HCP对应'; insert oPDPlan0; Rental_Apply__c ra1 = new Rental_Apply__c(); ra1.Name = 'test'; ra1.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal()); ra1.demo_purpose1__c = '其他'; ra1.demo_purpose2__c = '其他'; ra1.Request_shipping_day__c = Date.today().addDays(3); ra1.Hope_Lonaer_date_Num__c = 6; ra1.Hospital__c = hospital.Id; ra1.Strategic_dept__c = strategicDep[0].Id; ra1.Account__c = dep.Id; ra1.OPDPlan__c = oPDPlan0.id; insert ra1; List raList = [SELECT id,OwnerId,Approver_of_Service_Department__c,Strategic_user__c,Strategic_dept__c,ShareStrategicUser__c FROM Rental_Apply__c WHERE Id = :ra1.Id ]; // System.assertEquals(1, raList.size()); List user = [select Id,Name,Job_Category__c from User where IsActive = true AND Job_Category__c = '销售服务']; // List user1 = [select Id,Name from User where IsActive = true AND Job_Category__c = '销售服务']; strategicDep[0].OwnerId = user[0].Id; // strategicDep[0].Department_Class_Label__c = '普外科'; update strategicDep; hospital.FSE_GI_Main_Leader__c = user[1].Id; hospital.FSE_SP_Main_Leader__c = user[1].Id; update hospital; ra1.Person_In_Charge__c = user[2].Id; update ra1; System.debug('OCM_dept_category__c::'+ra1.OCM_dept_category__c); System.debug('Job_Category__c::'+ra1.Job_Category__c); System.debug('Strategic_userFSEGI__c::'+ra1.Strategic_userFSEGI__c); System.Test.startTest(); Database.executeBatch(new ConsumablesApplyOrLendBatch(),1); // strategicDep[0].OwnerId = user[1].Id; // strategicDep[0].Department_Class_Label__c = '其他'; // update strategicDep; // Database.executeBatch(new ConsumablesApplyOrLendBatch(strategicDep[0].id),1); System.Test.stopTest(); } //add by rentx 2020-12-04 end //add by wangweipeng 2021-10-19 start static testMethod void testMethod4(){ //简档 Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; //用户 User u1 = new User(Test_staff__c = true, LastName = '张', FirstName = '三', Alias = '张 三',Work_Location__c = '北京', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); insert u1; User u2 = new User(Test_staff__c = true, LastName = '赵', FirstName = '四', Alias = '赵 四',Work_Location__c = '重庆', CommunityNickname = 'hpOwner2', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner2@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); insert u2; User u3 = new User(Test_staff__c = true, LastName = '王', FirstName = '五', Alias = '王 五',Work_Location__c = '石家庄', CommunityNickname = 'hpOwner3', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner3@sunbridge.com', IsActive = false, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); insert u3; // 病院、戦略科室、診療科の情報を作成します Account hospital = createHospital( 'test hospital'); Account[] strategicDep = selectStrategicDep( hospital); Account dep = createDep( hospital, strategicDep[0]); OPDPlan__c oPDPlan0 = new OPDPlan__c(); oPDPlan0.Status__c = '完毕未报告'; oPDPlan0.OPDPlan_ImplementDate__c = Date.today().addDays(1); oPDPlan0.NoOpp_Reason__c = 'HCP对应'; insert oPDPlan0; Rental_Apply__c ra1 = new Rental_Apply__c(); ra1.Name = 'test'; ra1.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal()); ra1.demo_purpose1__c = '其他'; ra1.demo_purpose2__c = '其他'; ra1.Request_shipping_day__c = Date.today().addDays(3); ra1.Hope_Lonaer_date_Num__c = 6; ra1.Hospital__c = hospital.Id; ra1.Strategic_dept__c = strategicDep[0].Id; ra1.OPDPlan__c = oPDPlan0.id; ra1.Account__c = dep.Id; ra1.ProducLeader_Share__c = ''; insert ra1; List raList = [SELECT id,OwnerId,Approver_of_Service_Department__c,Strategic_user__c,Strategic_dept__c,ShareStrategicUser__c FROM Rental_Apply__c WHERE Id = :ra1.Id ]; // strategicDep[0].OwnerId = u1.Id; // strategicDep[0].Department_Class_Label__c = '普外科'; // update strategicDep; hospital.FSE_GI_Main_Leader__c = u2.Id; hospital.FSE_SP_Main_Leader__c = u2.Id; update hospital; //备品借出申请 共享计划创建 Rental_Apply__Share rass = new Rental_Apply__Share(); rass.RowCause= 'Office_Assistant__c';//手动 rass.ParentId = ra1.id; rass.UserOrGroupId = u2.Id; rass.AccessLevel = 'Read';//编辑 insert rass; //备品借出申请 共享计划创建 Rental_Apply__Share rasss = new Rental_Apply__Share(); rasss.RowCause= 'RentalApplyProducLeaderShare__c';//手动 rasss.ParentId = ra1.id; rasss.UserOrGroupId = u1.Id; rasss.AccessLevel = 'Read';//编辑 insert rasss; Database.executeBatch(new ConsumablesApplyOrLendBatch(),1); ra1.ShareStrategicUser__c = u2.Id; ra1.hospitalLeaderGI__c = u2.Id; ra1.hospitalLeaderSP__c = u2.Id; ra1.ProducLeader_Share__c = u1.Id; update ra1; System.Test.startTest(); Database.executeBatch(new ConsumablesApplyOrLendBatch(),1); System.Test.stopTest(); } //add by wangweipeng 2021-10-19 end }