# -*- 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_a6_期初录入_低值_暂存,id2301,id2301-6,sit,on
内网:a_a6_期初录入_低值_暂存
"""

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_a6_期初录入_低值_暂存
     用例名称：a_a6_期初录入_低值_暂存
     输入：无
     输出："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_insertTemp_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)
    #获取单元包信息,先调用a_a8_期初录入_低值_查询单元含量信息.air
    pro_path = commonFuc().get_pro_path()
    sys.path.append(pro_path + r'\\air_case\\b4_herp3_InitStock\\a_a8_期初录入_低值_查询单元含量信息.air')
    using(pro_path + r'\\air_case\\b4_herp3_InitStock\\a_a8_期初录入_低值_查询单元含量信息.air')
    from a_a8_期初录入_低值_查询单元含量信息 import test1
    print('hosGoodsId',hosGoodsId)
    test1(hosGoodsId)
    #从message3文件中读取单元包信息
    info = FileUtils().r_info8(module, "产品单元包信息", 'message3')
    # 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))

    pkgDefId = 'pkgDefId'
    for i in list_a2:
        pkgDefId = i['id']
        pkgDefName=i['pkgDefName']
        pkgDefQty=i['pkgDefQty']
    # # 请求体
    hospitalId = commonFuc().get_business_data(module, "hospitalId")
    branchId = commonFuc().get_business_data(module, "branchId")
    request_body = commonFuc().get_business_data(module, "payload_5", id, orderNo, hosGoodsId, hosGoodsCode, provId, subProvId,inSettlement,supplyId,batchCode,productDate,expdtDate,stockQty,pkgDefId,pkgDefName,pkgDefQty)
    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)
    if code == 0 and data == 1 :
        commonFuc().check_text_exist(0, result)
    else:
        commonFuc().check_text_exist('error', result)



test1()
