Commit c2b4b718 authored by xianyang's avatar xianyang

优化财务信息,业务类型汇总导出

parent 17568c47
......@@ -6,6 +6,7 @@ from app.api.account import schemas, crud
from app.api.statement import crud as statement_crud
from libs.result_format import HttpResultResponse, HttpMessage
from libs.token_verify import login_required
import pandas as pd
router = APIRouter()
......@@ -64,7 +65,8 @@ def finance_info_excel(data: schemas.FinanceInfo, request: Request,
"""账户财务信息导出"""
headers = request.get("headers")
statement_list = crud.get_finance_info(data.unique_tag, data.page, data.size, data.start_time, data.end_time)
return statement_crud.data_to_file(db, statement_list, "财务信息", headers)
df = ['表id', '金额', '入账', '出账', '时间']
return statement_crud.data_to_file(db, statement_list, "财务信息", headers, df)
@router.get("/finance/details")
......@@ -87,7 +89,8 @@ def finance_info_excel(data: schemas.FinanceDetails, request: Request,
"""账户财务详情导出"""
headers = request.get("headers")
statement_list = crud.get_finance_details(data.page, data.size, data.uuid, data.start_time, data.end_time, data.type, data.gift_type)
return statement_crud.data_to_file(db, statement_list, "财务明细", headers)
field_head = ['订单号', '出入账方式', '礼物类型', '金额', '时间']
return statement_crud.data_to_file(db, statement_list, "财务明细", headers, field_head)
@router.get("/type")
......
......@@ -196,7 +196,7 @@ class MonthDataDerive(object):
"type": res["reference_type"],
"expenditure": out_value,
"income": income_value,
"is_error": 0 if out_value == income_value else 1,
"is_error": '否' if out_value == income_value else '是',
"error_money": float('%.2f' % (out_value - income_value))
}
self.derive_key.append(res["reference_type"])
......
......@@ -97,4 +97,5 @@ def month_to_export(param: schemas.MonthStatistics, request: Request, token=Depe
if not param.date:
return HttpResultResponse(code=500, msg='查询月份不能为空')
result = crud.MonthDataDerive().derive_data('assets_log_' + param.date, param.type)
return statement_crud.data_to_file(db, result, "业务类型汇总", headers)
field_head = ['业务名称', '财务编码类型', '出账金额', '入账金额', '是否异常', '异常金额']
return statement_crud.data_to_file(db, result, "业务类型汇总", headers, field_head)
import math
import threading
import time
from concurrent.futures.thread import ThreadPoolExecutor
import pandas as pd
......@@ -20,7 +21,7 @@ locka = threading.Lock()
# 写入文件
def data_to_file(db, data, name, header):
def data_to_file(db, data, name, header, field_list):
# 获取操作人
user = query_token(db, header)
params = {"source": name, "method": "data_to_file", "status": 1}
......@@ -28,6 +29,10 @@ def data_to_file(db, data, name, header):
params["status"] = 3
try:
bk = pd.DataFrame(data)
if data[0].get('create_time'):
if isinstance(data[0]['create_time'], int):
bk['create_time'] = bk['create_time'].apply(lambda x: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(x)))
bk.columns = field_list # 修改pandas头
with pd.ExcelWriter(f'static/{name}.xlsx') as writer:
bk.to_excel(writer, sheet_name='Sheet1', index=False)
file = open(writer, 'rb')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment