Commit b525b340 authored by 齐 振鋆's avatar 齐 振鋆
Browse files

手术【配货、借出】维护

parent 05cafa5e
......@@ -3,14 +3,12 @@
# 日期:2023/3/14
# 描述:
import logging
import os
from datetime import datetime
import pytest
import allure
import logging
import pytest
from ddt import ddt, file_data
from cases.UI.GuKeYiTiHua import PROJECTNAME
......@@ -26,11 +24,10 @@ from component.GuKeYiTiHua.SurgeryFollow.SurgeryBack.orthopedic_take import Orth
from component.GuKeYiTiHua.SurgeryFollow.SurgeryBack.surgery_back import SurgeryBack
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.apolegamy_borrow import ApolegamyBorrow
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.apolegamy_take import ApolegamyTake
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.orthopedic_lend import OrthopedicLend
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.out_ledger import OutLedger
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.sugery_lend import OrthopedicLend
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.surgery_distribute import SurgeryDistribute
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.surgery_require import SurgeryRequire
from page.GuKeYiTiHua.DBQuery.db_query import DBQuery
from page.GuKeYiTiHua.Public.common import CommonElement
from unit.public.DataDic import DataDic
......
......@@ -2,26 +2,18 @@
# 作者:齐振鋆
# 日期:2023/2/22
# 描述: 采购OP
import logging
import os
from datetime import datetime
from time import sleep
import pytest
import allure
import logging
import pytest
from ddt import ddt, file_data
from component.GuKeYiTiHua.StorageManage.StorageIn.warehouse_accept import WarehouseVerify
from component.GuKeYiTiHua.StorageManage.StorageIn.warehouse_take import WarehouseTake
from component.GuKeYiTiHua.StorageManage.StorageIn.warehouse_up import WarehouseUp
from component.GuKeYiTiHua.StorageManage.StorageInfo.serial_storage import SerialStorage
from component.GuKeYiTiHua.StorageManage.StorageOut.warehouse_check import WarehouseCheck
from component.GuKeYiTiHua.StorageManage.StorageOut.warehouse_delivery import WarehouseDelivery
from component.GuKeYiTiHua.StorageManage.StorageOut.warehouse_pick import WarehousePick
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.orthopedic_lend import OrthopedicLend
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.surgery_distribute import SurgeryDistribute
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.surgery_require import SurgeryRequire
from component.GuKeYiTiHua.purchaseManage.purchaseIn.purchase_op import PurchaseOP
from page.GuKeYiTiHua.DBQuery.db_query import DBQuery
from page.GuKeYiTiHua.Public.common import CommonElement
......
......@@ -21,8 +21,8 @@ from component.GuKeYiTiHua.SurgeryFollow.SurgeryBack.orthopedic_take import Orth
from component.GuKeYiTiHua.SurgeryFollow.SurgeryBack.surgery_back import SurgeryBack
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.apolegamy_borrow import ApolegamyBorrow
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.apolegamy_take import ApolegamyTake
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.orthopedic_lend import OrthopedicLend
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.out_ledger import OutLedger
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.sugery_lend import OrthopedicLend
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.surgery_distribute import SurgeryDistribute
from component.GuKeYiTiHua.SurgeryFollow.SurgeryLend.surgery_require import SurgeryRequire
from page.GuKeYiTiHua.DBQuery.db_query import DBQuery
......
......@@ -2,23 +2,21 @@
# 作者:齐振鋆
# 日期:2023/2/14
# 描述: 骨科仓借出单
import allure
import logging
from random import randint
from time import sleep
from selenium.common.exceptions import TimeoutException
import allure
from component.GuKeYiTiHua.SurgeryFollow import first_menu
from component.GuKeYiTiHua import iframe, menu, list_page, button, order_detail_main, order_detail_table, \
modal, em, dbq
from unit.public.YamlUtil import UtilYaml
from component.GuKeYiTiHua.SurgeryFollow import first_menu
log = logging.getLogger(__name__)
class OrthopedicLend(object):
third_menu = '骨科仓借出单'
third_menu = '手术借出单'
def __init__(self):
self.dbq = dbq
......@@ -47,72 +45,91 @@ class OrthopedicLend(object):
@allure.step('新建:{}'.format(third_menu))
def orthopedic_lend_create(self, order_code=None):
test_data_info = self.menu.dd.get_value('test_data_info')
log.info('骨科仓借出单创建')
log.info('手术借出单创建')
self.iframe.out_frame()
self.iframe.to_main_iframe()
if order_code is None:
self.button.new()
jc_code = ''
while jc_code.startswith('JC') is False:
sleep(1)
jc_code = self.order_detail_main.get_element_text('借出单号 ')
self.order_detail_main.save_order_code('jc_code', jc_code)
# 客户&配销客户
self.order_detail_main.some_click_item('客户名称 ')
customer_code = test_data_info['customer']
self.modal.search_and_choose_items(title='选择客户', text=customer_code)
self.order_detail_main.some_click_item('配销客户名称 ')
self.modal.search_and_choose_items(title='选择配销客户', text=customer_code)
# 选择业务员
self.order_detail_main.some_click_item('业务员名称 ')
self.modal.search_and_choose_items(title='根据公司编码选择员工信息', text=test_data_info['salesman'])
# 仓库
lend_warehouse_code = test_data_info['warehouse_lend']
borrow_warehouse_code = test_data_info['warehouse_borrow']
return_warehouse_code = test_data_info['warehouse_return']
self.order_detail_main.some_click_item('借出仓库名称 ')
self.modal.search_and_choose_items(title='选择借出仓库', text=lend_warehouse_code)
self.order_detail_main.some_click_item('借入仓库名称 ')
self.modal.search_and_choose_items(title='选择借入仓库', text=borrow_warehouse_code)
if lend_warehouse_code != return_warehouse_code:
self.order_detail_main.some_click_item('还回仓库名称 ')
self.modal.search_and_choose_items(title='选择还回仓库', text=return_warehouse_code)
self.order_detail_main.drop_choose_item('手术类型 ', '翻修手术')
self.order_detail_main.drop_choose_item('手术种类 ', '踝关节')
# 手术日期
date_str = self.menu.tu.get_date_str(1)
self.order_detail_main.date_input_item('手术日期 ', date_str)
self.order_detail_main.text_input_item('手术医生 ', '齐振鋆')
log.info('添加商品')
self.button.click_button(button_name='商品信息')
goods = test_data_info['goods']
goods_code_list = []
for good in goods:
goods_code_list.append(good)
self.modal.search_and_choose_items(placeholder='模糊检索:商品编码,商品名称,规格型号,厂家物料编码,存储条件',
text=goods_code_list)
sleep(3 * len(goods))
self.order_detail_table.get_cell_text('商品名称', goods_code_list[0])
min_num = self.menu.dd.get_value('minNum')
for good in goods:
good_number = randint(min_num, 5) if self.dbq.get_serial_flag(lend_warehouse_code,
good) != 'Y' else randint(min_num, 2)
self.order_detail_table.input_text('数量', good, good_number)
self.button.click_button(button_name='自动配货')
else:
self.orthopedic_lend_search(order_code=order_code)
self.list_page.open_order('借出单号')
self.em.check_message()
self.order_detail_main.choose_tap('主体信息')
self.order_detail_main.save_order_code('jc_code', order_code)
# self.em.check_message()
# self.order_detail_main.choose_tap('主体信息')废弃
# 公司
self.order_detail_main.some_click_item('公司名称 ')
company_code = test_data_info['company']
self.modal.search_and_choose_items(placeholder='模糊检索:公司名称,公司编码', text=company_code)
try:
self.button.click_button("//*[contains(string(), '提示')]/ancestor::div[@class='el-message-box']", '确定')
except TimeoutException:
pass
self.order_detail_main.drop_choose_item('手术类型 ', '翻修手术')
self.order_detail_main.drop_choose_item('手术种类 ', '踝关节')
self.order_detail_main.some_click_item('业务员名称 ')
self.modal.search_and_choose_items(title='根据公司编码选择员工信息', text=test_data_info['salesman'])
# 手术日期
date_str = self.menu.tu.get_date_str(1)
self.order_detail_main.date_input_item('手术日期 ', date_str)
self.order_detail_main.text_input_item('手术医生 ', '张三丰主任医师')
self.order_detail_main.choose_tap('仓库信息')
lend_warehouse_code = test_data_info['warehouse_lend']
borrow_warehouse_code = test_data_info['warehouse_borrow']
return_warehouse_code = test_data_info['warehouse_return']
self.order_detail_main.some_click_item('借出仓库名称 ')
self.modal.search_and_choose_items(title='选择借出仓库', text=lend_warehouse_code)
self.order_detail_main.some_click_item('借入仓库名称 ')
self.modal.search_and_choose_items(title='选择借入仓库', text=borrow_warehouse_code)
if lend_warehouse_code != return_warehouse_code:
self.order_detail_main.some_click_item('还回仓库名称 ')
self.modal.search_and_choose_items(title='选择还回仓库', text=return_warehouse_code)
self.order_detail_main.choose_tap('合同信息')
self.order_detail_main.some_click_item('合同号 ')
self.modal.search_and_choose_items(title='选择合同协议', text=test_data_info['agreement'])
# self.order_detail_main.some_click_item('公司名称 ')
# company_code = test_data_info['company']
# self.modal.search_and_choose_items(placeholder='模糊检索:公司名称,公司编码', text=company_code)
# try:
# self.button.click_button("//*[contains(string(), '提示')]/ancestor::div[@class='el-message-box']", '确定')
# except TimeoutException:
# pass
# self.order_detail_main.choose_tap('合同信息')
# self.order_detail_main.some_click_item('合同号 ')
# self.modal.search_and_choose_items(title='选择合同协议', text=test_data_info['agreement'])
# 保存获得请领单号
self.order_detail_main.choose_tap('主体信息')
self.button.save()
log.info('获取请领单号&存储')
jc_code = ''
while jc_code.startswith('JC') is False:
sleep(1)
jc_code = self.order_detail_main.get_element_text('借出单号 ')
log.info('借出单号:【{}】'.format(jc_code))
self.menu.dd.set_value('jc_code', jc_code)
UtilYaml(self.menu.dd.get_value('extract_path')).write_yaml({'jc_code': jc_code})
log.info('添加商品')
self.button.click_button(button_name='商品信息')
goods = test_data_info['goods']
goods_code_list = []
for good in goods:
goods_code_list.append(good)
self.modal.search_and_choose_items(placeholder='模糊检索:商品编码,商品名称,规格型号,厂家物料编码,存储条件', text=goods_code_list)
sleep(3 * len(goods))
self.order_detail_table.get_cell_text('商品名称', goods_code_list[0])
min_num = self.menu.dd.get_value('minNum')
for good in goods:
good_number = randint(min_num, 5) if self.dbq.get_serial_flag(lend_warehouse_code,
good) != 'Y' else randint(min_num, 2)
self.order_detail_table.input_text('数量', good, good_number)
# self.order_detail_main.choose_tap('主体信息')
# self.button.save()
self.order_detail_main.text_input_item('联系人 ', '无可救药')
self.order_detail_main.text_input_item('联系电话 ', '13444444444')
self.button.submit()
self.list_page.edit_iframe_is_show()
......@@ -123,14 +140,16 @@ class OrthopedicLend(object):
self.order_detail_main.choose_tap('主体信息')
log.info('获取借出单号&保存')
jc_code = self.order_detail_main.get_element_text('借出单号 ')
self.menu.dd.set_value('jc_code', jc_code) if follow == 'N' else self.menu.dd.set_value('new_jc_code', jc_code)
log.info('借出单号:【{}】'.format(jc_code))
UtilYaml(self.menu.dd.get_value('extract_path')).write_yaml({'jc_code': jc_code})
self.order_detail_main.save_order_code('jc_code',
jc_code) if follow == 'N' else self.order_detail_main.save_order_code(
'new_jc_code', jc_code)
self.order_detail_main.drop_choose_item('手术种类 ', '髋关节')
self.order_detail_main.text_input_item('手术医生 ', '张三丰主任医师')
self.order_detail_main.choose_tap('其他信息')
self.order_detail_main.text_input_item('联系人 ', '高启强')
self.order_detail_main.text_input_item('联系电话 ', '13333333333')
self.button.submit()
self.list_page.edit_iframe_is_show()
......
......@@ -3,18 +3,18 @@
# 日期:2023/2/14
# 描述: 手术请领配货单
import logging
import allure
from random import randint
from component.GuKeYiTiHua.SurgeryFollow import first_menu
from component.GuKeYiTiHua import iframe, menu, list_page, button, order_detail_main, order_detail_table, \
modal
from component.GuKeYiTiHua.SurgeryFollow import first_menu
log = logging.getLogger(__name__)
class SurgeryDistribute(object):
third_menu = '手术请领配货单'
third_menu = '手术配货单'
def __init__(self):
self.iframe = iframe
......@@ -40,12 +40,12 @@ class SurgeryDistribute(object):
log.info('手术请领单配货')
self.list_page.open_order(order_code=order_code)
self.order_detail_main.choose_tap('主体信息')
# self.order_detail_main.choose_tap('主体信息') 废弃
self.order_detail_main.some_click_item('业务员名称 ')
salesman_code = test_data_info['salesman']
self.modal.search_and_choose_items(title='选择员工信息', text=salesman_code)
self.order_detail_main.choose_tap('仓库信息')
# self.order_detail_main.choose_tap('仓库信息') 废弃
lend_warehouse_code = test_data_info['warehouse_lend']
self.order_detail_main.some_click_item('借出仓库名称 ')
self.modal.search_and_choose_items(title='选择借出仓库信息', text=lend_warehouse_code)
......@@ -53,10 +53,12 @@ class SurgeryDistribute(object):
self.order_detail_main.some_click_item('借入仓库名称 ')
self.modal.search_and_choose_items(title='选择借入仓库信息', text=borrow_warehouse_code)
goods = test_data_info['goods']
for good in goods:
not_distribute_number = int(self.order_detail_table.get_cell_text('未分配数量', good))
distribute_number = randint(self.menu.dd.get_value('minNum'), not_distribute_number)
self.order_detail_table.input_text('分配数量', good, distribute_number)
# goods = test_data_info['goods']
# for good in goods:
# not_distribute_number = int(self.order_detail_table.get_cell_text('未分配数量', good))
# distribute_number = randint(self.menu.dd.get_value('minNum'), not_distribute_number)
# self.order_detail_table.input_text('分配数量', good, distribute_number)
# 自动配货
self.button.click_button(button_name='自动配货')
self.button.submit()
self.list_page.edit_iframe_is_show()
......@@ -11,7 +11,6 @@ import allure
from component.GuKeYiTiHua import iframe, menu, list_page, button, order_detail_main, order_detail_table, \
modal, dbq
from component.GuKeYiTiHua.SurgeryFollow import first_menu
from unit.public.YamlUtil import UtilYaml
log = logging.getLogger(__name__)
......@@ -56,8 +55,7 @@ class SurgeryRequire(object):
self.list_page.open_order(order_code=order_code)
ql_code = order_code
self.menu.dd.set_value('ql_code', ql_code)
UtilYaml(self.menu.dd.get_value('extract_path')).write_yaml({'ql_code': ql_code})
self.order_detail_main.save_order_code('ql_code', ql_code)
# self.order_detail_main.choose_tap('主体信息') 已作废
# 公司
......@@ -70,6 +68,9 @@ class SurgeryRequire(object):
self.modal.search_and_choose_items(title='选择客户', text=customer_code)
self.order_detail_main.some_click_item('配销客户名称 ')
self.modal.search_and_choose_items(title='选择配销客户', text=customer_code)
# 选择业务员
self.order_detail_main.some_click_item('业务员名称 ')
self.modal.search_and_choose_items(title='根据公司编码选择员工信息', text=test_data_info['salesman'])
# 手术类型
self.order_detail_main.drop_choose_item('手术类型 ', '翻修髋')
......@@ -98,7 +99,7 @@ class SurgeryRequire(object):
self.order_detail_table.get_cell_text('商品名称', goods[0])
min_num = self.menu.dd.get_value('minNum')
for good in goods:
good_number = randint(min_num, 8) if self.dbq.get_serial_flag(test_data_info['warehouse_lend'],
good_number = randint(min_num, 5) if self.dbq.get_serial_flag(test_data_info['warehouse_lend'],
good) != 'Y' else randint(min_num, 2)
self.order_detail_table.input_text('数量', good, good_number)
self.button.submit()
......
......@@ -4,10 +4,11 @@
# 描述:
import logging
import re
from time import sleep
import allure
import pytest
from time import sleep
from page.GuKeYiTiHua.Public.errorMsg import ErrorMessage
from page.GuKeYiTiHua.Public.iFrame import IframeElement
from page.GuKeYiTiHua.Public.table import Table
......@@ -71,7 +72,7 @@ class OrderList(BasePage):
col_id = self.table.get_col_id(field_name)
return self.get_ele_text("//td[@colid='{}' and not(contains(@class, 'fixed--hidden'))][{}]".format(col_id, row))
def open_order(self, column=None, row=1, order_code=None):
def open_order(self, order_code=None, row=1, column=2):
"""
param tag: link列名
param index: 行
......@@ -84,7 +85,7 @@ class OrderList(BasePage):
"(//td[@colid='{}' and not(contains(@class, 'fixed--hidden'))])[{}]//span".format(tag_colid, row))
else:
log.info("打开单据【{}】".format(order_code))
self.click("(//td[contains(@class, 'dw-click-cell')]//*[text()='{}'])[{}]".format(order_code, row))
self.click(f"//td[contains(string(),'{order_code}')][{row}]/../td[{column}]//span")
self.iframe.to_edit_iframe()
self.em.check_message()
......
......@@ -10,6 +10,7 @@ import pytest
from page.GuKeYiTiHua.Public.errorMsg import ErrorMessage
from page.GuKeYiTiHua.Public.table import Table
from unit.public.UI.BasePage import BasePage
from unit.public.YamlUtil import UtilYaml
log = logging.getLogger(__name__)
......@@ -17,6 +18,11 @@ log = logging.getLogger(__name__)
class OrderDetailMain(BasePage):
em = ErrorMessage()
def save_order_code(self, key, value):
"""保存单号"""
self.dd.set_value(key, value)
UtilYaml(self.dd.get_value('extract_path')).write_yaml({key: value})
def choose_tap(self, tap_name):
"""
主单信息tap页
......
......@@ -4,7 +4,7 @@ python_classes = Test*
python_functions = test
log_cli = 1
log_cli_level = DEBUG
log_cli_level = INFO
log_cli_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)
log_cli_date_format=%Y-%m-%d %H:%M:%S
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment