@isTest private class OpdPlanWebServiceTest { @isTest static void testMethod1() { StaticParameter.rentalApplyIsRunning = true; ControllerUtil.EscapeNFM001Trigger = true; StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(ContactTriggerHandler.class.getName()); Oly_TriggerHandler.bypass(AgencyHospitalHandler.class.getName()); // 省 Address_Level__c al = new Address_Level__c(); al.Name = '東京'; al.Level1_Code__c = 'CN-99'; al.Level1_Sys_No__c = '999999'; insert al; // 市 Address_Level2__c al2 = new Address_Level2__c(); al2.Level1_Code__c = 'CN-99'; al2.Level1_Sys_No__c = '999999'; al2.Level1_Name__c = '東京'; al2.Name = '渋谷区'; al2.Level2_Code__c = 'CN-9999'; al2.Level2_Sys_No__c = '9999999'; al2.Address_Level__c = al.id; insert al2; // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; hospital.Is_Active__c = '有効'; hospital.Attribute_Type__c = '卫生部'; hospital.Speciality_Type__c = '综合医院'; hospital.Grade__c = '一级'; hospital.OCM_Category__c = 'SLTV'; hospital.Is_Medical__c = '医疗机构'; hospital.State_Master__c = al.id; hospital.City_Master__c = al2.id; hospital.Town__c = '东京'; insert hospital; // 戦略科室を得る Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = '9999998'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; Contact contact2 = new Contact(); contact2.AccountId = dep.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; insert contact2; // 20200831 ljh add start Date dateToday = Date.today(); Integer year = dateToday.year(); Integer month = dateToday.month(); if (month < 4) { year -= 1; } String selectedTab = String.valueOf(year - 1867 + 'P'); Account_Number_of_target__c anot = new Account_Number_of_target__c(); anot.Account__c = strategicDep[0].Id; anot.Account_HP__c = hospital.Id; anot.OCM_Period__c = selectedTab; anot.OCM_Year__c = String.valueOf(year+ '年度'); anot.OPD_290Miro__c = 1; insert anot; // 20200831 ljh add end // 产品 Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', Fixture_Model_No_T__c = 'n01', Asset_Model_No__c = 'Pro1', ProductCode_Ext__c='pc01',Manual_Entry__c=false,Important_Rroduct_2GI__c=true); Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', Fixture_Model_No_T__c = 'n02', Asset_Model_No__c = 'Pro2', ProductCode_Ext__c='pc02',Manual_Entry__c=false,Important_Rroduct_2GI__c=true); insert new Product2[] {pro1, pro2}; //20200902 ljh add start Campaign cam = new Campaign(); cam.Name = 'cam'; cam.StartDate = Date.today().addDays(-15); cam.EndDate = Date.today().addDays(18); 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.Is_LendProduct__c = '否'; cam.status = '公开中'; cam.HostName__c ='test'; cam.cooperatorCompany__c ='test'; insert cam; //20200902 ljh add end //备品借出申请 Rental_Apply__c raObj = new Rental_Apply__c(); raObj.Name = 'testra'; raObj.Product_category__c = 'GI'; raObj.Demo_purpose1__c = '产品试用'; //raObj.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('xuehuizhanhui'); raObj.Campaign__c = cam.id; raObj.direct_send__c = '医疗机构'; raObj.Loaner_received_staff__c = '王五'; raObj.Loaner_received_staff_phone__c = '110'; raObj.direct_shippment_address__c = '北京市'; raObj.Hospital__c = hospital.Id; raObj.Strategic_dept__c = strategicDep[0].Id; raObj.Account__c = dep.Id; raObj.Request_shipping_day__c = Date.toDay(); //raObj.Hope_Lonaer_date_Num__c = 1; //raObj.Request_return_day__c = Date.toDay(); raObj.Phone_number__c = '1234567890'; raObj.Loaner_medical_Staff__c = contact2.Id; insert raObj; OpdPlanWebService.changeTrade(raObj.Id); OpdPlanWebService.changeCampaign(raObj.Id); OpdPlanWebService.dataCheck(raObj.Id); OpdPlanWebService.raesCountCheck(raObj.Id); OpdPlanWebService.changeCampaign(cam.id); OpdPlanWebService.test(); } @isTest static void testMethod2(){ //前置数据 StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001Trigger = true; // システム管理者 User user = new User(Test_staff__c = true); user.LastName = '_サンブリッジ'; user.FirstName = 'う'; user.Alias = 'う'; user.Email = 'olympusTest03@sunbridge.com'; user.Username = 'olympusTest03@sunbridge.com'; user.CommunityNickname = 'う'; user.IsActive = true; user.EmailEncodingKey = 'ISO-2022-JP'; user.TimeZoneSidKey = 'Asia/Tokyo'; user.LocaleSidKey = 'ja_JP'; user.LanguageLocaleKey = 'ja'; user.ProfileId = System.Label.ProfileId_SystemAdmin; user.Job_Category__c = '销售推广'; user.Province__c = '上海市'; user.Dept__c='医疗华北营业本部'; user.Use_Start_Date__c = Date.today().addMonths(-6); user.SalesManager__c = UserInfo.getUserId(); user.BuchangApprovalManagerSales__c = UserInfo.getUserId(); user.JingliApprovalManager__c = UserInfo.getUserId(); user.BuchangApprovalManager__c = UserInfo.getUserId(); user.ZongjianApprovalManager__c = UserInfo.getUserId(); // MIXED_DML_OPERATION, DML operation on setup object is not permitted Error System.runAs(new User(Id = Userinfo.getUserId())) { user.Foul_Points__c = Integer.valueOf(System.Label.EquipmentRentalBlackList_ChangeOwner_Threshold); insert user; 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, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc]; if (rectDpt.size() == 0) { return; } // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 戦略科室を得る List strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_GI']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'Department_GI'].id; dep.Name = 'test dep'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; //联系人 Oly_TriggerHandler.bypass('PIHelper'); Oly_TriggerHandler.bypass('ContactTriggerHandler'); Contact core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = dep.id); insert core; // 製品を作る Product2 productA = new Product2( Name = 'テスト商品', Fixture_Model_No__c = 'n01'); insert productA; // 納入機器を作成する Asset asset = new Asset(); asset.Name = 'テスト機器'; asset.AccountId = dep.Id; asset.Department_Class__c = strategicDep[0].Id; asset.Hospital__c = hospital.Id; asset.SerialNumber = 'testserial'; insert asset; Fixture_Set__c fixtures1 = new Fixture_Set__c(); fixtures1.Name = 'set1'; fixtures1.Loaner_name__c = 'name1'; insert new Fixture_Set__c[] {fixtures1}; Fixture_Set_Detail__c fsd1 = new Fixture_Set_Detail__c(); fsd1.Product2__c = productA.Id; fsd1.Fixture_Set__c = fixtures1.Id; fsd1.Is_Body__c = true; fsd1.Is_Optional__c = false; fsd1.UniqueKey__c = fixtures1.Id + ':' + productA.Id; fsd1.SortInt__c = 1; insert new Fixture_Set_Detail__c[] {fsd1}; OPDPlan__c oPDPlan0 = new OPDPlan__c(); oPDPlan0.Status__c = '草案中'; oPDPlan0.OPDPlan_ImplementDate__c = Date.today().addDays(1); oPDPlan0.NoOpp_Reason__c = 'HCP对应'; oPDPlan0.OPDType__c = '科室'; insert oPDPlan0; Rental_Apply__c ra = new Rental_Apply__c(); ra.Name = 'test'; ra.applyUser__c = user.Id; ra.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal()); ra.Request_shipping_day__c = Date.today().addDays(3); ra.Hope_Lonaer_date_Num__c = 1; ra.Request_return_day__c = Date.today().addDays(8); ra.Demo_purpose1__c = '其他'; ra.Demo_purpose2__c = '其他'; ra.Account__c = dep.Id; ra.Strategic_dept__c = dep.Id; ra.Hospital__c = hospital.Id; ra.Loaner_medical_Staff__c = core.Id; ra.Phone_number__c = '12222222222'; ra.Person_In_Charge__c = user.Id; ra.OPDPlan__c = oPDPlan0.id; ra.SupplementCreated__c = true; insert ra; Rental_Apply_Equipment_Set__c es1 = new Rental_Apply_Equipment_Set__c(); es1.Rental_Apply__c = ra.Id; es1.Fixture_Set__c = fixtures1.Id; es1.IndexFromUniqueKey__c = 1; es1.UniqueKey__c = '1:' + fixtures1.Id + ':1'; insert new Rental_Apply_Equipment_Set__c[] {es1}; //创建借出配套明细 Rental_Apply_Equipment_Set_Detail__c esd1 = new Rental_Apply_Equipment_Set_Detail__c(); esd1.Rental_Apply__c = ra.Id; esd1.Fixture_Set_Detail__c = fsd1.Id; esd1.Rental_Num__c = 1; esd1.Queue_Number__c = 0; esd1.Rental_Apply_Equipment_Set__c = es1.Id; esd1.Salesdepartment_before__c = '1.华北营业本部'; esd1.Internal_asset_location_before__c = '北京 备品中心'; esd1.Product_category_text__c = 'GI'; esd1.Equipment_Type_text__c = '产品试用'; esd1.IndexFromUniqueKey__c = 1; esd1.UniqueKey__c = '1:' + es1.Id + ':' + fsd1.Id + ':1'; esd1.Is_Body__c = true; insert esd1; OpdPlanWebService.changeTrade(ra.Id); OpdPlanWebService.changeCampaign(ra.Id); OpdPlanWebService.dataCheck(ra.Id); OpdPlanWebService.raesCountCheck(ra.Id); } } }