# -*- 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_b5_期初录入_高值_生成,id2301,id2301-16,sit,on
内网:a_b5_期初录入_高值_生成
"""

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_b5_期初录入_高值_生成
     用例名称：a_b5_期初录入_高值_生成
     输入：无
     输出："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_generate_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'
    orderNo = 'orderNo'
    for i in list_a:
        id = i['id']
        orderNo = i['orderNo']
        break
    # 从message2文件中获取详情信息
    info = FileUtils().r_info8(module, "期初产品信息", 'message2')
    # print('info', info)
    list_a = info['list_a']
    print('list_a啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊', list_a)
    hosGoodsId = 'hosGoodsId'
    hosGoodsCode = 'hosGoodsCode'
    provId = 'provId'
    subProvId = 'subProvId'
    inSettlement = 'inSettlement'
    supplyId = 'supplyId'
    batchCode = 'batchCode'
    stockQty = '1'
    pkgDefId = 'pkgDefId'
    pkgDefName = 'pkgDefName'
    pkgDefQty = 'pkgDefQty'
    for i in list_a:
        hosGoodsId = i['hosGoodsId']
        hosGoodsCode = i['hosGoodsCode']
        provId = i['provId']
        subProvId = i['subProvId']
        inSettlement = i['inSettlement']
        supplyId = i['supplyId']
        batchCode = 'batchCode'
        stockQty = "1"
        pkgDefId = i['pkgDefId']
        pkgDefName = i['pkgDefName']
        pkgDefQty = i['pkgDefQty']
        break
    # # #获取日期
    productDate = timeUtils().get_time_hms(5)
    expdtDate = timeUtils().get_time_add(30, 2)

    # # 请求体
    hospitalId = commonFuc().get_business_data(module, "hospitalId")
    branchId = commonFuc().get_business_data(module, "branchId")

    sys.path.append(pro_path + r'\\air_case\\b4_herp3_InitStock\\a_b5_期初录入_生成_获取详细信息.air')
    using(pro_path + r'\\air_case\\b4_herp3_InitStock\\a_b5_期初录入_生成_获取详细信息.air')
    from a_b5_期初录入_生成_获取详细信息 import test1
    # 参数为2为高值
    test1(2)
    # 从message5文件中读取期初子表id
    info = FileUtils().r_info8(module, "期初单子表信息", 'message5')
    # print('info', info)
    list_a = info['list_a']
    list_a = ','.join(map(str, list_a))
    print(list_a)  # 输出:
    print('list_a', list_a, type(list_a))
    import json
    new_request_body = list_a.replace("'", '"')
    new_request_body1 = new_request_body.replace("None", 'null')
    print(new_request_body1)
    list_a2 = json.loads(new_request_body1)

    print('list_a2', list_a2, type(list_a2))

    initStockBatchVOS_id = 'initStockBatchVOS_id'
    lastModified = 'lastModified'
    version = 'version'
    createTime = 'createTime'
    createUser = 'createUser'
    lastModifiedUser = 'lastModifiedUser'
    pid = 'pid'
    detailId = 'detailId'
    unit = 'unit'
    purMode = 'purMode'
    unitName = 'unitName'
    batchVORepeatKey = 'batchVORepeatKey'
    inSettlement = 'inSettlement'
    supplyId = 'supplyId'
    initStockBatchVOS = 'initStockBatchVOS'
    for i in list_a2:
        initStockBatchVOS = i['initStockBatchVOS']
        inSettlement = i['inSettlement']
        supplyId = i['supplyId']
        id = i['id']
        provName = i['provName']
        subProvName = i['subProvName']
        mfrCode = i['mfrCode']
        break
    for i in initStockBatchVOS:
        initStockBatchVOS_id = i['id']
        lastModified = i['lastModified']

        lastModifiedUser = i['lastModifiedUser']
        pid = i['pid']

        initStockBatchVOS_batchCode = i['batchCode']
        snCode = i['snCode']
        break
    request_body = commonFuc().get_business_data(module, "payload_11", hosGoodsCode, id, inSettlement, hosGoodsId,
                                                 provId, subProvId, provName, subProvName, supplyId, mfrCode, mfrCode,
                                                 initStockBatchVOS_batchCode, expdtDate, initStockBatchVOS_id,
                                                 lastModified, lastModifiedUser, pid, productDate,stockQty, snCode, pid, orderNo)
    print('request_body', request_body)
    # 发送请求
    result = commonFuc().http_post(url, request_body, headers)
    print('result', result)
    # 断言
    code = commonFuc().analysis_json('code', result)
    msg = commonFuc().analysis_json('msg', result)
    if code == 14030121 and msg == '期初单已生成，请勿重复生成':
        commonFuc().check_text_exist(0, result)
    else:
        commonFuc().check_text_exist('error', result)


test1()
