# -*- encoding=utf8 -*-
import json
import traceback

from air_case.b1_herp3_login.登录内网系统.登录内网系统 import login_system
from air_case.public1.public1.public1 import *
from common.db.sql.sql_del_branch_info import delData
from common.db.sql.sql_tools import *
from common.fileUtls import FileUtils
from common.run_cmd_script import execute_command
from common.timeUtils import timeUtils
from airtest.core.api import using

__author__ = "xiaohesheng"

"""
case_tag:api,b6_spd3_core_business_flow_database_check,a_b6流程十三请领业务流_三级库向二级库,id2303,id2303-16,sit,on
核心业务流:a_b6流程十三请领业务流_三级库向二级库
python runner_test.py tag id2303-16 debug mdm3
"""


def check_mcms_dept_buy_car(type=1):
    hos_goods_id = 'hos_goods_id'
    if type == 1:
        hos_goods_id = FileUtils().r_info8('b5_spd3_core_business_flow', '产品审核信息', 'message2')["hosGoodsId"]
    elif type == 2:
        hos_goods_id = FileUtils().r_info8('b5_spd3_core_business_flow', '产品审核信息', 'message1')["hosGoodsId"]
    elif type == 3:
        hos_goods_id = FileUtils().r_info8('b5_spd3_core_business_flow', '产品审核信息', 'message3')["hosGoodsId"]
    branch_id = get_branch_id()
    # 获取create_time的值
    create_time = get_create_time(
        "select create_time from mcms_dept_buy_car where branch_id='%s'and hos_goods_id='%s'order by create_time desc LIMIT 1;" % (
            branch_id, hos_goods_id))
    print('create_time', create_time)
    id = get_id(
        "select id from mcms_dept_buy_car where branch_id='%s'and hos_goods_id='%s' order by create_time desc LIMIT 1;" % (
            branch_id, hos_goods_id))
    print('id', id)
    create_user = get_id(
        "select create_user from mcms_dept_buy_car where branch_id='%s'and hos_goods_id='%s' order by create_time desc LIMIT 1;;" % (
            branch_id, hos_goods_id))
    print('create_time', create_time, 'id', id)
    sql = """select * from mcms_dept_buy_car where branch_id='%s' and hos_goods_id='%s' order by create_time desc LIMIT 1;
             """ % (branch_id, hos_goods_id)
    # 要验证的sql，取自数据库的表中
    actual_value1 = check_mcms_dept_buy_car_sql(sql)
    print(actual_value1)
    deptid2 = FileUtils().r_info8("b2_herp3_bs", "所有科室id", 'message6')['deptid5']
    deptname2 = FileUtils().r_info8("b2_herp3_bs", "所有科室name", 'message6')['deptid5']
    areaCode = get_stockAreaId_new_fromDb(deptname2, 2)
    areaName = '默认库区'

    mdm_goods_code = get_mdm_goods_code1(hos_goods_id)
    goodsCode = get_goods_code1(hos_goods_id)
    pkgDefId = get_pkg_def_id(hos_goods_id)
    pkgDefName = get_pkg_def_Name(hos_goods_id)
    last_modified_user = create_user
    last_modified = create_time
    # print('actual_value1',actual_value1)
    actual_value2 = get_process_list2(actual_value1)
    # print('actual_value2')
    # print( actual_value2)
    # prov_hos_goods_id = '8d6273b7bca84dd8aace12b9422d7fd6'
    expected_value2 = 'expected_value2'
    if type == 1:
        expected_value2 = commonFuc().get_business_data('b6_spd3_core_business_flow_database_check',
                                                        'check_mcms_dept_buy_car', id, get_hosid(), branch_id,
                                                        deptid2,
                                                        deptname2, areaCode, areaName, hos_goods_id, mdm_goods_code,
                                                        goodsCode, pkgDefId, pkgDefName
                                                        , create_user, create_time, last_modified, last_modified_user)
    elif type == 2:
        expected_value2 = commonFuc().get_business_data('b6_spd3_core_business_flow_database_check',
                                                        'check_mcms_dept_buy_car2', id, get_hosid(),
                                                        branch_id,
                                                        deptid2,
                                                        deptname2, areaCode, areaName, hos_goods_id, mdm_goods_code,
                                                        goodsCode,
                                                        create_user, create_time, last_modified, last_modified_user)
    else:
        expected_value2 = commonFuc().get_business_data('b6_spd3_core_business_flow_database_check',
                                                        'check_mcms_dept_buy_car3', id, get_hosid(), branch_id,
                                                        deptid2,
                                                        deptname2, areaCode, areaName, hos_goods_id, mdm_goods_code,
                                                        goodsCode, pkgDefId, pkgDefName
                                                        , create_user, create_time, last_modified, last_modified_user)
    # print('expected_value2', expected_value2)
    # expected_value2=get_process_list2(expected_value2)
    actual_value2 = actual_value2.replace(" ", "")
    expected_value2 = expected_value2.replace(" ", "")
    # print('actual_value2',actual_value2)
    print('expected_value2')
    print(expected_value2)
    print('actual_value2')
    print(actual_value2)
    result = (compare_text_index(actual_value2, expected_value2))
    print('result', result)
    if actual_value2 == expected_value2:
        print('ok')
        commonFuc().check_text_exist_result_text('succees', 'succees')
    else:
        print('error')
        commonFuc().check_text_exist_result_text('error', 'succees')


try:
    pro_path = commonFuc().get_pro_path2()
    print('pro_path', pro_path)
    sys.path.append(pro_path + r'/air_case/b5_spd3_core_business_flow/a_b6流程十三请领业务流_三级库向二级库.air')
    using(pro_path + r'//air_case/b5_spd3_core_business_flow/a_b6流程十三请领业务流_三级库向二级库.air')

    from a_b6流程十三请领业务流_三级库向二级库 import add_dept2

    from a_b6流程十三请领业务流_三级库向二级库 import add_new_deptinfo, edit_goods_target, second_dept_Request
    from a_b6流程十三请领业务流_三级库向二级库 import BuyCarSubmit, pick_execute
    # 设置部门用户
    set_dept_user(FileUtils().r_info8("b2_herp3_bs", "所有科室id", 'message6')['deptid3'],
                  FileUtils().r_info8("b2_herp3_bs", "所有科室name", 'message6')['deptid3'], 3)
    # 设置部门负责人
    set_dept_lead_new(FileUtils().r_info8('b2_herp3_bs', '所有科室id', 'message6')["deptid3"])  # 设置二级科室负责人
    get_stockAreaId_new(FileUtils().r_info8("b2_herp3_bs", "所有科室id", 'message6')['deptid3'],
                        FileUtils().r_info8("b2_herp3_bs", "所有科室name", 'message6')['deptid3'], 3)
    deptName3 = FileUtils().r_info8("b2_herp3_bs", "所有科室name", 'message6')['deptid3']
    # 设置库区联系人
    set_stockShelf_Linkman(FileUtils().r_info8('b2_herp3_bs', '所有科室id', 'message6')["deptid3"],
                           get_stockAreaId2_new_fromDb(deptName3, 3))  # 设置库区联系人
    #三级科室产品分配
    dept_goods_distribute(FileUtils().r_info8("b2_herp3_bs", "所有科室id", 'message6')['deptid3'])

    updateUserLoginDefaultRange(get_listUserMgrRangePage1(3))  # 设置登录账号默认权限是三级库
    # # # 低值
    second_dept_Request(FileUtils().r_info8("b5_spd3_core_business_flow", "产品审核信息", 'message2')['hosGoodsId'], 1)
    check_mcms_dept_buy_car(1)
    # # # 高值
    second_dept_Request(FileUtils().r_info8("b5_spd3_core_business_flow", "产品审核信息", 'message1')['hosGoodsId'], 2)
    check_mcms_dept_buy_car(2)
    # # # 试剂
    second_dept_Request(FileUtils().r_info8("b5_spd3_core_business_flow", "产品审核信息", 'message3')['hosGoodsId'], 3)
    check_mcms_dept_buy_car(3)
    BuyCarSubmit()  # 请领车提交
    for i in range(6):  # 三个单据共审批6次
        approval_center()
    updateUserLoginDefaultRange(get_listUserMgrRangePage1(2))  #设置登录账号默认权限是二级库
    #二级科室领用出库
    # 低值拣货执行
    pick_execute()
    updateUserLoginDefaultRange(get_listUserMgrRangePage1(3))  #设置登录账号默认权限是三级库
    second_dept_one_key_in(3)
    second_dept_one_key_in(3)
    second_dept_one_key_in(3)
    commonFuc().check_text_exist_result_text('succees', 'succees')
except:
    commonFuc().check_text_exist_result_text('error ', '1')
