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
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
|