Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/testscript/TestPack.java =================================================================== diff -u -r33862 -r34125 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/testscript/TestPack.java (.../TestPack.java) (revision 33862) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/testscript/TestPack.java (.../TestPack.java) (revision 34125) @@ -38,11 +38,13 @@ private PersonalDesktopProxy personalDesktopProxy = new PersonalDesktopProxy(); private PackProxy packProxy = new PackProxy(); private static JSONObject nomalPackingJsonObj;//普通装配用例参数 + private static JSONObject splitPackingForForeignTousseJsonObj;//外来器械拆包装配用例参数 @BeforeClass public static void setUp_class(){ Utils.init(); nomalPackingJsonObj = Utils.testcaseData.getJSONObject("test_normal_packing"); + splitPackingForForeignTousseJsonObj = Utils.testcaseData.getJSONObject("test_split_packing_for_foreign_tousse"); } @Story("测试普通装配") @@ -64,6 +66,32 @@ Assert.assertTrue(result!=null && result.size()>0);//如果获取到装配条码则断言装配成功 } + @Story("测试外来器械拆包装配") + @Test + public void test_split_packing_for_foreign_tousse() throws InterruptedException { + JSONObject operator = splitPackingForForeignTousseJsonObj.getJSONObject("operator");//操作人 + String taskGroup = splitPackingForForeignTousseJsonObj.getString("task_group");//装配任务 + String basketBarcode = splitPackingForForeignTousseJsonObj.getString("basket_barcodes");//清洗篮筐条码 + String materialRows = splitPackingForForeignTousseJsonObj.getString("materialRows");//材料行数 + String splitCount = splitPackingForForeignTousseJsonObj.getString("splitCount");//拆分数量 + String packageType = splitPackingForForeignTousseJsonObj.getString("packageType");//包装类型 + String sterilizationProgram = splitPackingForForeignTousseJsonObj.getString("sterilizationProgram");//灭菌程序 + + + //用户登录 + loginProxy.go_login_by_btn(operator.getString("username"), operator.getString("password")); + //装配 + personalDesktopProxy.go_pack(taskGroup); + packProxy.split_packing_for_foreign_tousse(basketBarcode, operator.getString("barcode"), + operator.getString("barcode"), Integer.parseInt(materialRows), splitCount, packageType, sterilizationProgram); + + Thread.sleep(2000);//等待装配完成 + packProxy.switch_to_pack_frame(); + List result = Utils.getToussesBarcodes();//获取装配条码 + logger.debug("本次装配产生的包实例条码:"+result); + Assert.assertTrue(result!=null && result.size()>0);//如果获取到装配条码则断言装配成功 + } + @After public void tearDown() throws FileNotFoundException, WebDriverException, InterruptedException{ //用例执行完成后,添加截图到测试报告 Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackHandle.java =================================================================== diff -u -r34011 -r34125 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackHandle.java (.../PackHandle.java) (revision 34011) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackHandle.java (.../PackHandle.java) (revision 34125) @@ -21,6 +21,13 @@ public static Logger logger = Logger.getLogger(PackHandle.class);//日志器 /** + * 跳转到装配管理标签页 + */ + public void switch_to_pack_frame(){ + Utils.driver.switchTo().frame(packPage.get_pack_frame()); + } + + /** * 扫描篮筐条码 * @param basketBarcode */ Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackProxy.java =================================================================== diff -u -r34011 -r34125 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackProxy.java (.../PackProxy.java) (revision 34011) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackProxy.java (.../PackProxy.java) (revision 34125) @@ -1,6 +1,6 @@ package test.forgon.disinfectsystem.selenium3.page.pack; -import test.forgon.disinfectsystem.selenium.tools.Utils; +import test.forgon.disinfectsystem.selenium3.Utils; import io.qameta.allure.Step; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -15,12 +15,19 @@ //引入装配管理页面操作层 private PackHandle packHandle = new PackHandle(); + /** + * 跳转到装配管理标签页 + */ + @Step("跳转到装配页面frame") + public void switch_to_pack_frame(){ + packHandle.switch_to_pack_frame(); + } /** * 普通装配 - * @param basketBarcodes - * @param operatorBarcode - * @param reviewerBarcode + * @param basketBarcodes 待装配篮筐 + * @param operatorBarcode 装配人条码 + * @param reviewerBarcode 审核人条码 */ @Step("普通装配") public void normal_packing(JSONArray basketBarcodes,String operatorBarcode,String reviewerBarcode){ @@ -42,13 +49,13 @@ /** * 外来器械拆包装配 - * @param basketBarcodes - * @param packerBarcode - * @param reviewerBarcode - * @param materialRows - * @param splitCount - * @param packageType - * @param sterilizationProgram + * @param basketBarcodes 待装配篮筐 + * @param packerBarcode 装配人条码 + * @param reviewerBarcode 审核人条码 + * @param materialRows 材料行数 + * @param splitCount 拆分数量 + * @param packageType 包装类型 + * @param sterilizationProgram 灭菌程序 */ @Step("外来器械拆包装配") public void split_packing_for_foreign_tousse(String basketBarcodes,String packerBarcode,String reviewerBarcode,int materialRows,String splitCount,String packageType,String sterilizationProgram){ @@ -58,7 +65,7 @@ packHandle.input_packer_barcode2(packerBarcode); packHandle.input_reviewer_barcode2(reviewerBarcode); //修改拆分数量 - for(int j=0;j>”按钮,拆出第一个小包 @@ -69,7 +76,7 @@ packHandle.click_move_material_btn2(); packHandle.click_split_btn(); //修改两个拆分小包的包装类型和灭菌程序 - for(int j=0;j<2;j++){ + for(int j=1;j<=2;j++){ packHandle.double_click_package_type_of_split_tousse(j); packHandle.click_package_type_option(packageType); packHandle.double_click_sterilization_program_of_split_tousse(j); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackPage.java =================================================================== diff -u -r34011 -r34125 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackPage.java (.../PackPage.java) (revision 34011) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/page/pack/PackPage.java (.../PackPage.java) (revision 34125) @@ -13,7 +13,7 @@ * */ public class PackPage extends BasePage { - + private By packFrame = By.id("iframe_packing");//装配管理标签页 private By basketBarcodeInput = By.id("basketBarcodeInput-inputEl");//扫描篮筐条码输入框 private By checkBoxInTheUpperLeftCorner = By.xpath("//*[@id='basketTreeGrid-body']//input[@class=' x4-tree-checkbox']");//左上角待装配物品的复选框 private By scanIdCardBarcode = By.id("scanIdCardBarcode-inputEl");//标识牌条码框 @@ -25,14 +25,22 @@ private By splitForeignTousseBtn = By.xpath("//input[@value='拆包']");//外来器械拆包按钮 private By packerBarcode2 = By.id("packerBarcode2-inputEl");//外来器械拆包窗口的配包人条码 private By reviewerBarcode2 = By.id("reviewerBarcode2-inputEl");//外来器械拆包窗口的审核人条码 - private By selectAllCheckbox = By.id("//*[@id='waitSplitMaterialGrid']/div[2]//span[1]");//待拆分材料的全选框 - private By moveMaterialBtn1 = By.xpath("//span[text()='>>']");//移动材料按钮1 - private By moveMaterialBtn2 = By.xpath("//span[text()='>>>>']");//移动材料按钮2 - private By splitBtn = By.xpath("//span[text()='拆分']");//拆分按钮 - private By saveAndPrintBtnInSplitWin = By.xpath("//*[@id='foreignTousseWin-body']//span[text()='装配并打印标签']");//外来器械拆包窗口的装配并打印标签按钮 + private By selectAllCheckbox = By.xpath("//*[@id='waitSplitMaterialGrid']/div[2]//span[1]");//待拆分材料的全选框 + private By moveMaterialBtn1 = By.xpath("//span[text()='>>']/../../..");//移动材料按钮1 + private By moveMaterialBtn2 = By.xpath("//span[text()='>>>>']/../../..");//移动材料按钮2 + private By splitBtn = By.xpath("//span[text()='拆分']/../../..");//拆分按钮 + private By saveAndPrintBtnInSplitWin = By.xpath("//*[@id='foreignTousseWin-body']//span[text()='装配并打印标签']/../../..");//外来器械拆包窗口的装配并打印标签按钮 /** + * 获取装配管理标签页 + * @return + */ + public WebElement get_pack_frame(){ + return get_element_until_visibility(packFrame); + } + + /** * 获取篮筐条码输入框 * @return */ Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/testscript/TestMainProcess.java =================================================================== diff -u -r34011 -r34125 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/testscript/TestMainProcess.java (.../TestMainProcess.java) (revision 34011) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium3/testscript/TestMainProcess.java (.../TestMainProcess.java) (revision 34125) @@ -62,6 +62,7 @@ private static JSONObject notTracetraceDisinfetionProcessJsonObj;//不追溯的消毒物品申领发货流程用例参数 private static JSONObject disposableGoodProcessJsonObj;//一次性物品申领发货流程用例参数 private static JSONObject foreignTousseProcessJsonObj;//外来器械包闭环流程用例参数 + private static JSONObject splitPacketOfForeignTousseProcessJsonObj;//外来器械拆分小包闭环流程用例参数 @BeforeClass public static void setUp_class(){ @@ -71,6 +72,7 @@ disposableGoodProcessJsonObj = Utils.testcaseData.getJSONObject("test_main_process_of_disposable_good"); notTracetraceDisinfetionProcessJsonObj = Utils.testcaseData.getJSONObject("test_main_process_of_not_trace_disinfetion"); foreignTousseProcessJsonObj = Utils.testcaseData.getJSONObject("test_main_process_of_foreign_tousse"); + splitPacketOfForeignTousseProcessJsonObj = Utils.testcaseData.getJSONObject("test_main_process_of_split_packet_of_foreign_tousse"); } @Story("普通器械包闭环流程") @@ -558,6 +560,157 @@ Assert.assertTrue(result.contains(expect)); } + @Story("外来器械拆分小包闭环流程") + @Test + public void test_main_process_of_split_packet_of_foreign_tousse() throws InterruptedException { + JSONObject applyUser = splitPacketOfForeignTousseProcessJsonObj.getJSONObject("apply_user");//申领科室用户 + JSONObject handleUser = splitPacketOfForeignTousseProcessJsonObj.getJSONObject("handle_user");//处理科室用户 + JSONArray foreignTousse = splitPacketOfForeignTousseProcessJsonObj.getJSONArray("foreignTousse");//外来器械包 + String applyDepart = splitPacketOfForeignTousseProcessJsonObj.getString("apply_depart");//申领科室 + String applyType = splitPacketOfForeignTousseProcessJsonObj.getString("application_type");//申请单类型 + JSONArray recyclingBasketBarcodes = splitPacketOfForeignTousseProcessJsonObj.getJSONArray("recycling_basket_barcodes");//回收篮筐条码 + JSONArray secondaryRecyclingBasketBarcodes = splitPacketOfForeignTousseProcessJsonObj.getJSONArray("secondary_recycling_basket_barcodes");//二次回收篮筐条码 + + String disinfectMachineBarcode = splitPacketOfForeignTousseProcessJsonObj.getJSONObject("wash_machine").getString("machineBarcode");//清洗机条码 + String disinfectProgramBarcode = splitPacketOfForeignTousseProcessJsonObj.getJSONObject("wash_program").getString("programBarcode");//清洗程序条码 + + String taskGroup = splitPacketOfForeignTousseProcessJsonObj.getString("task_group");//装配任务 + String materialRows = splitPacketOfForeignTousseProcessJsonObj.getString("materialRows");//材料行数 + String splitCount = splitPacketOfForeignTousseProcessJsonObj.getString("splitCount");//拆分数量 + String packageType = splitPacketOfForeignTousseProcessJsonObj.getString("packageType");//包装类型 + String sterilizationProgram = splitPacketOfForeignTousseProcessJsonObj.getString("sterilizationProgram");//灭菌程序 + + String sterilizationGroup = splitPacketOfForeignTousseProcessJsonObj.getString("sterilization_group");//灭菌炉分组 + String sterilizerBarcode = splitPacketOfForeignTousseProcessJsonObj.getJSONObject("sterilizer").getString("barcode");//灭菌炉条码 + String sterilizationProgramBarcode = splitPacketOfForeignTousseProcessJsonObj.getJSONObject("sterilization_program").getString("barcode");//灭菌程序条码 + String sterilizationPurpose = splitPacketOfForeignTousseProcessJsonObj.getString("sterilization_purpose");//灭菌目的 + JSONObject patientInfo = splitPacketOfForeignTousseProcessJsonObj.getJSONObject("patientInfo");//使用记录录入的参数 + String expect = splitPacketOfForeignTousseProcessJsonObj.getString("expect");//预期结果 + + String hospitalNumber = patientInfo.getString("hospitalNumber");//住院号 + String clinicNumber = patientInfo.getString("clinicNumber");//诊疗号 + String circuitNurse = patientInfo.getString("circuitNurse");//巡回护士 + String operationRoom = patientInfo.getString("operationRoom");//手术间 + String patientName = patientInfo.getString("patientName");//病人姓名 + String patientAge = patientInfo.getString("patientAge");//手术间 + String patientSex = patientInfo.getString("patientSex");//性别 + String patientArea = patientInfo.getString("patientArea");//病区 + String departNameOfPatient = patientInfo.getString("departNameOfPatient");//病人所在科室 + String patientRoom = patientInfo.getString("patientRoom");//病室 + String patientBed = patientInfo.getString("patientBed");//床位 + String patientIDCard = patientInfo.getString("patientIDCard");//身份证号 + String doctor = patientInfo.getString("doctorName");//医生 + String operation = patientInfo.getString("operation");//手术名称 + String operationScheduleId = patientInfo.getString("operationScheduleId");//手术单号 + String visitTimes = patientInfo.getString("visitTimes");//住院次数 + String specialInfection = patientInfo.getString("specialInfection");//感染类型 + String ascriptionDepartment = patientInfo.getString("ascriptionDepartment");//病人所属科室 + String remark = patientInfo.getString("remark");//备注 + + //手术室用户登录 + loginProxy.go_login_by_btn(applyUser.getString("username"), applyUser.getString("password")); + + //申领 + personalDesktopProxy.go_apply(); + applyProxy.apply_foreign_tousse(hospitalNumber, clinicNumber, patientName, patientArea, patientRoom, + patientAge, patientBed, patientSex, ascriptionDepartment, operation, doctor, operationRoom, remark, + foreignTousse);; + + //手术室用户退出登录 + personalDesktopProxy.exit_system(); + + //处理科室用户登录 + loginProxy.go_login_by_btn(handleUser.getString("username"), handleUser.getString("password")); + + //回收 + personalDesktopProxy.go_recycle(); + awaitForRecycleProxy.choose_most_recent_application_by_type("(待接收)"+applyType); + recycleProxy.recycle_by_normal_into_basket(handleUser.getString("barcode"), handleUser.getString("barcode"), recyclingBasketBarcodes); + + //关闭回收页面并跳转到个人桌面窗口 + Utils.switchBetweenTwoWins(); + + //清洗 + personalDesktopProxy.go_wash(); + washProxy.disinfect_by_scan_barcodes(disinfectMachineBarcode, disinfectProgramBarcode, handleUser.getString("barcode"), recyclingBasketBarcodes); + + //拆包装配 + Utils.driver.navigate().refresh(); + personalDesktopProxy.go_pack(taskGroup); + for(int i=0;i packingBarcodeList = Utils.getToussesBarcodes();//获取装配条码 + logger.debug("本次装配产生的包实例条码:"+packingBarcodeList); + + //将装配条码从List转换为JSONArray + JSONArray packingBarcodes = new JSONArray(); + JSONObject barcode = new JSONObject(); + for(int i=0;i