You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.6 KiB

# -*- coding: utf-8 -*-
# @Time : 2023/9/26 11:02
# @Author : tx
# @File : report_drug_logs.py
# @Description :
from fastapi.encoders import jsonable_encoder
from tortoise.queryset import QuerySet
from conf import setting
# from models.drug_use_log import DrugUseLog, DrugUseStateEnum
from helper.export.base import ReportExport
from helper.drug import milligram_to_gram
from helper.report import report_drug_logs
class ReportDrugUseLogs(ReportExport):
def __init__(self, request, keyword):
super().__init__()
self.title = "流转日志"
self.stateDict = {0: "入库", 1: "归还", 2: "领用", 3: "空瓶", 4: "报废"}
self.request = request
self.keyword = keyword
async def parse_data(self, request, keyword):
"""
解析数据
:return:
"""
keyword.page_no = 0
result = await report_drug_logs(request, keyword)
self.drug_attribute_key_list = result.get("attribute_key")
return result.get("data")
def parse_key_finds_list(self):
"""
解析键列名
:return:
"""
key_list = ["state", "position", "users", "weight", "use_weight", "created_at"]
finds_list = ["流转类型", "位置", "用户", "余量", "用量", "创建时间"]
self.key_list = self.drug_attribute_key_list + key_list
self.finds_list = self.drug_attribute_key_list + finds_list
async def main(self):
"""
主函数
:param kwargs:
:return:
"""
self.data_list = await self.parse_data(self.request, self.keyword)
self.parse_key_finds_list()