baseline: 批次A-D 成果 + membership 半成品(测试红)
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""报表中心模型:
|
||||
- ReportDefinition 报表定义元数据(支持动态多维查询配置)
|
||||
"""
|
||||
|
||||
from django.db import models
|
||||
from apps.core.base_models import TenantScopedModel
|
||||
|
||||
|
||||
class ReportDefinition(TenantScopedModel):
|
||||
"""报表元数据定义(支持动态多维分析配置)。"""
|
||||
|
||||
CATEGORY_CHOICES = [
|
||||
("sales", "销售分析"),
|
||||
("inventory", "库存分析"),
|
||||
("purchase", "采购分析"),
|
||||
("finance", "财务往来"),
|
||||
("comprehensive", "综合经营"),
|
||||
]
|
||||
|
||||
code = models.CharField(max_length=64, help_text="报表唯一标识编码")
|
||||
name = models.CharField(max_length=128, help_text="报表名称")
|
||||
category = models.CharField(max_length=32, choices=CATEGORY_CHOICES, default="sales")
|
||||
description = models.CharField(max_length=255, blank=True, default="")
|
||||
is_system = models.BooleanField(default=False, help_text="系统内置预设报表")
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
# 元数据查询配置:
|
||||
# {
|
||||
# "target_model": "sales.SalesBillLine",
|
||||
# "dimensions": ["product__name", "bill__customer__name"],
|
||||
# "metrics": ["sum_quantity", "sum_amount", "gross_profit"],
|
||||
# "default_sort": "-sum_amount"
|
||||
# }
|
||||
query_config = models.JSONField(default=dict, blank=True, help_text="维度与指标元数据定义")
|
||||
|
||||
class Meta:
|
||||
db_table = "report_definition"
|
||||
unique_together = [("tenant", "code")]
|
||||
verbose_name_plural = "报表定义"
|
||||
ordering = ["category", "code"]
|
||||
|
||||
def __str__(self):
|
||||
return f"[{self.get_category_display()}] {self.name} ({self.code})"
|
||||
Reference in New Issue
Block a user