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.

32 lines
1.5 KiB

from tortoise import fields, models
class Dictionary(models.Model):
id = fields.UUIDField(pk=True)
archive = fields.ForeignKeyField('rms.Archive', to_field='id', description='药剂大类ID')
k1 = fields.CharField(null=True, max_length=255, description='关键字段1')
k2 = fields.CharField(null=True, max_length=255, description='关键字段2')
k3 = fields.CharField(null=True, max_length=255, description='关键字段3')
k4 = fields.CharField(null=True, max_length=255, description='关键字段4')
k5 = fields.CharField(null=True, max_length=255, description='关键字段5')
k6 = fields.CharField(null=True, max_length=255, description='关键字段6')
storage_count = fields.IntField(default=0, description='库存量')
use_count = fields.IntField(default=0, description='使用次数')
params = fields.JSONField(null=True, description='默认参数')
created_at = fields.DatetimeField(auto_now_add=True)
updated_at = fields.DatetimeField(auto_now=True)
class Meta:
table = 'dictionaries'
table_description = '药剂字典表'
async def attribute_dictionary_info(self, template):
"""k1-k6键值"""
xlsx = list(filter(lambda i: i.get("checked"), template.xlsx))
xlsx_transfer = {f"{item['key']}": f"{item['text']}" for item in xlsx}
dictionary_info = {xlsx_transfer.get(f"k{i}"): getattr(self, f"k{i}")
for i in range(1, 7) if xlsx_transfer.get(f"k{i}") and hasattr(self, f"k{i}")}
return dictionary_info