易盘点自定义函数库说明
登录功能
功能说明:返回请求状态
用法:在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
评论已关闭