每刻报销,填写费用详细信息
每刻报销提交报销单的时候需要给每笔费用信息都补充完整,明明是一样的信息却不可以批量填写,非得一个个点开。
抓了个接口来完成这些工作
代码
import requests
import json
from selenium import webdriver
import time
login_url='https://auth.maycur.com/'
logged_url='https://www.maycur.com/web/'
#driver = webdriver.Chrome()
# 记得写完整的url 包括http和https
#driver.get(login_url)
# 延迟20秒
#time.sleep(20)
#cookies=# 获取当前标签页的全部cookie信息
#print(driver.get_cookies())
# 把cookie转化为字典
#cookies = {cookie['name']: cookie['value'] for cookie in driver.get_cookies()}
def convert_cookies_to_dict(cookies):
cookies = dict([l.split("=", 1) for l in cookies.split("; ")])
return cookies
def submit_fee():
temp_cookie=""""""#cookie
cookies = convert_cookies_to_dict(temp_cookie)
#global cookies
print(cookies)
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Connection': 'keep-alive',
'Content-Type': 'application/json;charset=UTF-8',
'Eagleeye-Sessionid': '', #补充完整
'Eagleeye-Traceid': '',
'Eagleeye-Pappname': '',
'Origin': 'https://www.maycur.com',
'Referer': 'https://www.maycur.com/web/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.48',
'entCode': '',
'lang': 'zh',
'sec-ch-ua': '"Chromium";v="112", "Microsoft Edge";v="112", "Not:A-Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'tokenId': '',
}
data={
"draw": 6,
"columns": [
{
"data": '',
"name": "",
"searchable": True,
"orderable": False,
"search": {
"value": "",
"regex": False
}
},
{
"data": '',
"name": "consumeAmount",
"searchable": True,
"orderable": True,
"search": {
"value": "",
"regex": False
}
},
{
"data": '',
"name": "consumeTime",
"searchable": True,
"orderable": True,
"search": {
"value": "",
"regex": False
}
},
{
"data": '',
"name": "",
"searchable": True,
"orderable": False,
"search": {
"value": "",
"regex": False
}
},
{
"data": "subsidiaryName",
"name": "",
"searchable": True,
"orderable": False,
"search": {
"value": "",
"regex": False
}
},
{
"data": '',
"name": "",
"searchable": True,
"orderable": False,
"search": {
"value": "",
"regex": False
}
},
{
"data": '',
"name": "",
"searchable": True,
"orderable": False,
"search": {
"value": "",
"regex": False
}
}
],
"order": [
{
"column": 2,
"dir": "desc"
}
],
"start": 0,
"length": 100,#数量
"search": {
"value": "",
"regex": False
},
"feeDataStatusArray": [
"unreimbursed"
],
"authorizer": "UI2107271IOTVBI8"
}
result=json.loads(requests.post(url="https://www.maycur.com/api/web/expense/list",headers=headers,json=data,cookies=cookies).text)
print(result)
total_fee=0
for i in result['data']:
#for j in i:
# print(j,'值:\t\t\t\t',i[j])
fee_submit_data={ "reimburseDataCode": '',
"reimburseStatus": "未报销",
"showPersonalTag": False,
"feeCode": str(i['feeCode']),
"feeTypeCode": str(i["feeTypeCode"]),
"feeTypeName": "差旅打车",
"feeTypeParentCode": "2002",
"feeTypeParentName": "交通类",
"autoGenAllowance": False,
"booking": True,
"businessPurpose": "汽车",
"children": [],
"comments": "因公出行",##事由
"consumeAmount": str(i["consumeAmount"]),
"consumeCcyCode": "CNY",
"consumeCcySymbol": "¥",
"consumeLocation": "domestic-ZH32-ZH32_2",
"consumeTime": str(i['consumeTime']),
"collectionCcyCode": "",
"costTrackings": [
{
"required": False,
"costTrackingCode": "CT1609231GKGT0JK",
"costTrackingName": "项目(Project)",
"costTrackingItemCode": "CTI190107140CDA4G",
"costTrackingItemName": "无项目"
},
{
"required": False,
"costTrackingCode": "CT160924VTNKSG0",
"costTrackingName": "行业线(Industry line)",
"costTrackingItemCode": "CTI160927QXGJLKW",
"costTrackingItemName": "其他"
}
],
"createTime": str(i['createTime']),
"currentUserCode": str(i['userCode']),
"dynamicForms": i['dynamicForms'],
"exchangeRate": '1',
"feeAmount": str(i['feeAmount']),
"feeCcyCode": "CNY",
"feeCcySymbol": "¥",
"feeTypeGroupTag": "Taxi",
"freeInvoice": False,
"feeAllocations": [
{
"costTrackings": [
{
"required": False,
"costTrackingCode": "CT1609231GKYD8U8",
"costTrackingName": "客户(Customer)",
"linkedCostTrackingCode": "",
"costTrackingItemCode": "CTI180305191RCVB4",
"costTrackingItemName": "无客户",
"costTrackingItemBizCode": "GGKH000001"
}
],
"allocatedRatio": 100,
"allocatedAmount": str(i['feeAmount'])
}
],
"invoiceList": '',
"parentChild": "U",
"sourceId": str(i['sourceId']),
"sourceName": "差旅壹号",
"sourceType": "travelno1",
"statistic": True,
"subsidiaryCode": str(i['subsidiaryCode']),
"sysExchangeRate": '1',
"userCode": str(i['userCode']),
"invoiceCount": '0',
"payMethod": "PERSONAL_PAY",
"feeAllocated": False,
"invoiceDataCodes": [],
"deductionFlag": False,
"consumeApplication": '',
"accompaniedUserList": '',
"customerObjectV2": {},
"invoiceAndTaxDetails": [],
"approvedAmount": str(i['feeAmount'])
}
#print(fee_submit_data)
fee_submit=json.loads(requests.post(url='https://www.maycur.com/api/web/expense/edit',headers=headers,json=fee_submit_data,cookies=cookies).text)
print(fee_submit['message'],i['feeAmount'],i['dynamicForms'])
total_fee=total_fee+i['feeAmount']
print("总计费用:",total_fee)
submit_fee()运行截图
