# -*- encoding=utf8 -*-
from common.db.sql.sql_get_info import sql_get_info
from common.fileUtls import FileUtils
from common.timeUtils import timeUtils

__author__ = "xiaohesheng"

"""
case_tag:api,herp-web,a_b2_期初录入_试剂_新增产品页面列表_查询全部,id2301,id2301-12,sit,on
内网:a_b2_期初录入_试剂_新增产品页面列表_查询全部
"""

from common.common_func import commonFuc
from air_case.b1_herp3_login.登录内网系统.登录内网系统 import login_system
from airtest.core.api import using
import sys


def test1():
    module = "b4_herp3_InitStock"
    """
     场景:a_b2_期初录入_试剂_新增产品页面列表_查询全部
     用例名称：a_b2_期初录入_试剂_新增产品页面列表_查询全部
     输入：无
     输出："rtn_msg": {"code": 0, "msg": null,    "data": true}
    """
    # 内网登录
    username = commonFuc().get_business_data(module, "username")
    # print('医院名称',username)
    password = commonFuc().get_business_data(module, "password")
    # print(username, password,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
    # 获取token和projectCode
    token, projectCode, uxid, corpId, info = login_system(username, password).get_token()
    # print( token,projectCode,uxid,corpId,info)
    #
    url = commonFuc().get_api_url() + commonFuc().get_business_data(module,
                                                                    "herpService_mcmsInitStock_getMcmsGoodsInfoVOS_url")
    print(url)

    # 获取请求头信息
    headers = commonFuc().get_business_data(module, "json_headers2",
                                            commonFuc().get_business_data(module, "json_contentType"), token,
                                            commonFuc().get_business_data(module, "X-APP-CODE"))
    print('headers', headers)
    # # #获取日期
    # date1=timeUtils().get_time_hms(2)
    # date2=timeUtils().get_time_add(-1)
    # print(date1,date2)
    # #从文件中获取库房名称，写脚本时用已经存在的库房，方便编写脚本和调试脚本
    # stock_name=commonFuc().get_business_data(module,'stock_name')
    # #============================================
    # #从基础数据模块写入的库房名称中获取（暂时注释）
    # # branch_name = FileUtils().r_info('b2_herp3_bs', '院区新增')["branch_name"]
    # # stock_name=branch_name+'中心库房'
    # #=============================================
    # #通过数据库获取库房id和库区id===============
    # stockId=sql_get_info().get_mcms_stock_info(stock_name)
    # areaCode=sql_get_info().get_mcms_stock_shelf_info(stockId)
    # stockId = stockId.replace("'", "")
    # areaCode=areaCode.replace("'","")
    # # 通过数据库获取库房id和库区id===============
    # 调用a_a4_期初录入_低值_录入_获取单据信息
    pro_path = commonFuc().get_pro_path()
    sys.path.append(pro_path + r'\\air_case\\b4_herp3_InitStock\\a_a4_期初录入_低值_录入_获取单据信息.air')
    using(pro_path + r'\\air_case\\b4_herp3_InitStock\\a_a4_期初录入_低值_录入_获取单据信息.air')
    from a_a4_期初录入_低值_录入_获取单据信息 import test1
    # 从文件读取期初单号_低值
    info = FileUtils().r_info8(module, "期初单号试剂", 'message')
    list2 = info['list_a']
    QCID = ' '.join(list2)
    print('bbbb', QCID, type(QCID))
    test1(QCID)

    # 从message1文件中获取信息
    info = FileUtils().r_info8(module, "期初单号信息", 'message1')
    # print('info', info)
    list_a = info['list_a']
    # print('list_a', list_a)
    id = 'id'
    hosId = 'hosId'
    deptId = 'deptId'
    stockId = 'stockId'
    orderNo = 'orderNo'
    purMode = 'purMode'
    for i in list_a:
        id = i['id']
        hosId = i['hosId']
        deptId = i['deptId']
        stockId = i['stockId']
        orderNo = i['orderNo']
        purMode = i['purMode']
        break
    # # 请求体
    hospitalId = commonFuc().get_business_data(module, "hospitalId")
    branchId = commonFuc().get_business_data(module, "branchId")
    request_body = commonFuc().get_business_data(module, "payload_3", id, hosId, deptId, stockId, orderNo, purMode)
    print('request_body', request_body)
    # 发送请求
    result = commonFuc().http_post(url, request_body, headers)
    print('result', result)
    # 断言
    code = commonFuc().analysis_json('code', result)
    data = commonFuc().analysis_json('data', result)
    total = commonFuc().analysis_json('total', data)
    if code == 0 and len(data) >= 1 and total >= 1:
        commonFuc().check_text_exist(0, result)
    else:
        commonFuc().check_text_exist('error', result)
    # 期初产品信息写入文件
    data1 = commonFuc().analysis_json('data', data)
    list_a = []
    list_b = []
    list_c = []
    if total >= 1:
        list_a.append(data1[0])
    if total >= 2:
        list_b.append(data1[1])
    if total >= 3:
        list_c.append(data1[2])
    # print('list_a', len(list_a), list_a)
    try:
        info = (list_a, list_b, list_c)
        titlename = ('list_a', 'list_b', 'list_c')
        # 将期初产品信息写入到文件中
        FileUtils().w_info8(info, module, '期初产品信息', titlename, 'message2')
    except:
        print('产品数据数量不足3,请检查产品数据或者修改此处脚本')


test1()
