易盘点自定义函数库说明

登录功能

功能说明:返回请求状态
用法:在data中填入加密过后的 账号 密码 aesSecretKey 请求函数登录成功后会返回 结果,且将登录状态保存至全局变量pandian_session中

def pandian_login():
    global pandian_session
    timestamp1 = int(datetime.now().timestamp() * 1000)
    timestamp = str(timestamp1)
    headers = {'accept': 'application/json, text/plain, */*',
               'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
               'referer': 'https://www.epandian.com/views/login?t=' + timestamp,
               'sec-ch-ua': '"Google Chrome";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
               'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'}
    data = {'account': '', 'password': '',
            'aesSecretKey': ''}
    url = 'https://www.epandian.com/admin/account/login'
    response = pandian_session.post(url, headers=headers, data=data)
    if response.status_code == 200:
        data_dict = response.json()
        msginfo = data_dict['message']
        print('易盘点登录:' + msginfo)
    else:
        print('易盘点:登录失败')

增加辅助耗材物品

功能说明:返回请求状态
用法:传入参数 wupin_name:物品名称,categoryId:119544分类ID,brand:品牌,model: 规格,unit: 单位
返回结果

# 增加辅助耗材wuping_name:物品名称,categoryId: 119544:分类ID,brand:品牌,model: 规格,unit: 单位,
def addMateria(wupin_name, categoryId, brand, model, unit):
    global pandian_session
    timestamp1 = int(datetime.now().timestamp() * 1000)
    timestamp = str(timestamp1)
    date = datetime.now()
    # 编码命名
    now = datetime.now()
    current_date = now.date()
    formatted_time = now.strftime("%H%M%S")
    rec = str(current_date) + "-" + str(formatted_time)
    # 生成一个随机的1位数整数
    random_digit = random.randint(0, 9)
    num = str(random_digit)
    Code = 'EN-HC-' + rec + num  # EN-HC-时间分秒 随机数
    data_code = {}
    url = 'https://www.epandian.com/consume/addMaterial?t=' + 'timestamp'
    data = {'materialCode': Code, 'materialName': wupin_name, 'categoryId': categoryId, 'brand:': brand, 'model': model,
            'unit': unit, 'numberScale': 1, 'priceScale': 1, 'calculateMethod': 0, 'isFixedCost': 0, 'costPrice': '',
            'unitPriceIsShow': 0, 'allowSelfApply': 0,
            'extendInfo': '[{"id":70077,"categoryId":0,"categoryName":"","attributeName":"发票税率","scope":1,"isRequired":0,"rootCompanyId":61969,"dataStatus":0,"cdate":"2022-08-25 09:15:05","mdate":"2022-08-25 09:15:05","extendFieldType":0}]',
            'selfReceiveConfigType': '0', 'monthLimit': '', 'receiveNumLimit': ''}
    response = pandian_session.post(url, data=data)
    if response.status_code == 200:
        wupin_text = response.text
        wupin_str = json.loads(wupin_text)
        materialId = wupin_str['data']
        data_code['materialId'] = materialId
        data_code['materialCode'] = Code
        data_code['materialName'] = wupin_name
        data_code['categoryId'] = categoryId
        data_code['brand'] = brand
        data_code['model'] = model
        data_code['unit'] = unit

        data_code['rao_status'] = 'true'

    else:
        data_code['rao_status'] = 'false'
    return data_code

关键词查询-耗材物品查询

功能说明:查询物品是否已经存在,如果存在就获取编码和名称,不存在就返回false
用法:参数 wupin_name:物品名称,wupin_model:物品型号
查询物品是否已经存在,如果存在就获取编码和名称,不存在就返回false

# 关键词查询-耗材物品查询
# 查询物品是否已经存在,如果存在就获取编码和名称,不存在就返回false
def SearchWord(wupin_name, wupin_model):
    global pandian_session
    timestamp1 = int(datetime.now().timestamp() * 1000)
    timestamp = str(timestamp1)
    word = wupin_name
    url = 'https://www.epandian.com/consume/queryMaterialPage?enableStatus=1&pageIndex=1&pageSize=20&queryWord=' + word + '&t=' + timestamp
    datas = {}
    # 链接里pageSize设置一页获取的数据
    try:
        response = pandian_session.get(url)
        response.raise_for_status()  # 如果响应状态码不是200,会抛出HTTPError异常
        wupin_text = response.text
        wupin_list = json.loads(wupin_text)
        data = wupin_list['data']
        dataList = data['dataList']
        datas['rao_status'] = 'false'  # 初始化为false
        for item in dataList:
            if wupin_name == item['materialName'] and wupin_model == item['model']:  # 同时判断物品名称和型号
                datas['materialCode'] = item['materialCode']  # 物料编码
                datas['materialName'] = item['materialName']  # 名称
                datas['id'] = item['id']  # ID
                datas['categoryId'] = item['categoryId']  # categoryId
                datas['categoryName'] = item['categoryName']  # 分类名称
                datas['brand'] = item['brand']  # 品牌
                datas['model'] = item['model']  # 规格
                datas['unit'] = item['unit']  # 单位
                datas['rao_status'] = 'true'
                break

    except requests.exceptions.HTTPError as http_err:
        print(f'HTTP error occurred: {http_err}')
    except Exception as err:
        print(f'Other error occurred: {err}')
    return datas

创建易盘点单号(辅助耗材)

功能说明:返回请求状态id
用法:参数 sheetDetailFields:物品列表字典,numberTotal:总数 ,priceTotal:总价 ,supplierId:供应商ID ,OA_danhao_num:OA单号

# 创建易盘点单号(辅助耗材)
def addFlowSheet(sheetDetailFields, numberTotal, priceTotal, supplierId, OA_danhao_num):
    global pandian_session
    timestamp1 = int(datetime.now().timestamp() * 1000)
    timestamp = str(timestamp1)
    # 生成时间戳
    utc_now = datetime.now(pytz.utc)
    formatted = utc_now.isoformat().replace('+00:00', 'Z')[:-4] + 'Z'
    # print(formatted)

    text2 = ''  # 传递文本

    url = 'https://www.epandian.com/selfdefineflow/form/addFlowSheet?t=' + timestamp
    headers = {}
    sheetJson = {}
    sheetJson["applyCompanyId"] = None
    sheetJson["applyUserId"] = 3150466  # 申请人
    sheetJson["applyDepartmentId"] = 827643  # 申请人部门
    sheetJson["applyDate"] = formatted  # 时间戳
    sheetJson["applyforCompanyId"] = 61969  # 申请公司
    sheetJson["applyBranchId"] = 827643  # 申请部门
    sheetJson["purchaseCompanyId"] = 61969  # 采购公司
    sheetJson["supplierId"] = supplierId  # 供应商ID,838京东,950淘宝,1704拼多多,1484志诚嘉
    sheetJson["numberTotal"] = numberTotal  # 总数
    sheetJson["priceTotal"] = priceTotal  # 总价
    sheetJson["remark"] = "OA自动同步" +' '+ "OA单号: " + str(OA_danhao_num)  # 备注
    sheetJson["imgIds"] = ""  # 图片
    sheetJson["sheetDetailFields"] = sheetDetailFields

    sheetJson2 = json.dumps(sheetJson, ensure_ascii=False)

    data = {}
    data["formType"] = 106
    data["sheetJson"] = str(sheetJson2)
    # print(data)
    out_datas ={}
    out_datas['status']={'标记':'false'}
    response = pandian_session.post(url, headers=headers, data=data)
    if response.status_code == 200:
        out_datas['danhao_datas'] = response.json()
        out_datas['status']['标记'] = 'true'
    else:
        pass
    return out_datas

获取单号

功能说明:返回易盘点单号
用法:参数 type:类型 固资采购 13 辅助耗材106

def danhao(type,pageSize,queryWord):
    """ 类型 固资采购 13  辅助耗材106 ,一页数据大小,关键词"""
    global pandian_session
    sheet_datas ={} #存放返回数据
    sheet_datas['status'] = {'标记':'false'}
    timestamp1 = int(datetime.now().timestamp() * 1000)
    timestamp = str(timestamp1)
    #cookie = "_pk_id.2.410f=d7175dac51322701.1748920326.; Hm_lvt_0a88fa0339b223e56f35c9801fcd409a=1749621716,1749636143,1749869560,1749881599; Hm_lpvt_0a88fa0339b223e56f35c9801fcd409a=1749881599; HMACCOUNT=B31CA3AC160F1CFC; sessionId=6d3e1297-d45c-41b0-a95e-66da7ee5a8eb; token=0e6e350c3b0c95e86e745261ab299c98; _pk_ses.2.410f=1"
    header = {"content-type":"application/json"}
    url = "https://www.epandian.com/selfdefineflow/form/sheetListQueryV1?t="+timestamp
    queryJson ={}
    queryJson['queryWord']= queryWord
    queryJson["pageIndex"] =1
    queryJson["pageSize"] = pageSize

    data = {"formType":type,"queryJson":queryJson}
    json_output = json.dumps(data) #将单引号转成双引号
    response = pandian_session.post(url, headers=header, data=json_output)
    if response.status_code == 200:
        data_dict = response.json()
        sheet_datas['datas_tables'] = data_dict['data']['dataList']
        sheet_datas['status']['标记'] = 'true'

    else:
        print('操作失败')
    return sheet_datas