50 lines
2.4 KiB
Python
50 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""报表管理数据模型"""
|
|
from sqlalchemy import Column, String, Text, Integer, Boolean, JSON, SmallInteger
|
|
|
|
from app.base_model import BaseModel
|
|
|
|
|
|
class ReportTemplate(BaseModel):
|
|
"""报表模板主表"""
|
|
__tablename__ = "report_template"
|
|
|
|
application_id = Column(String(21), nullable=True, index=True, comment="所属应用ID")
|
|
name = Column(String(100), nullable=False, comment="报表名称")
|
|
code = Column(String(100), unique=True, nullable=False, index=True, comment="报表编码")
|
|
category = Column(String(50), default="", comment="分类")
|
|
description = Column(Text, default="", comment="描述")
|
|
status = Column(String(20), default="draft", index=True, comment="状态: draft/published")
|
|
allow_export = Column(Boolean, default=True, comment="允许导出")
|
|
allow_print = Column(Boolean, default=True, comment="允许打印")
|
|
allow_watermark = Column(Boolean, default=False, comment="允许水印")
|
|
watermark_config = Column(JSON, default=dict, comment="水印配置")
|
|
|
|
|
|
class ReportVersion(BaseModel):
|
|
"""报表版本表"""
|
|
__tablename__ = "report_version"
|
|
|
|
template_id = Column(String(21), nullable=False, index=True, comment="模板ID")
|
|
version = Column(Integer, default=1, comment="版本号")
|
|
state = Column(SmallInteger, default=0, index=True, comment="0设计中 1启用 2归档")
|
|
snapshot = Column(JSON, default=dict, comment="Univer工作簿JSON")
|
|
cells = Column(JSON, default=dict, comment="单元格绑定元数据")
|
|
query_list = Column(JSON, default=list, comment="查询条件")
|
|
sort_list = Column(JSON, default=list, comment="排序配置")
|
|
column_list = Column(JSON, default=list, comment="分栏配置")
|
|
fence_list = Column(JSON, default=list, comment="围栏配置")
|
|
convert_config = Column(JSON, default=dict, comment="数据转换规则")
|
|
|
|
|
|
class ReportDataset(BaseModel):
|
|
"""报表版本与数据源关联"""
|
|
__tablename__ = "report_dataset"
|
|
|
|
version_id = Column(String(21), nullable=False, index=True, comment="版本ID")
|
|
data_source_id = Column(String(21), nullable=False, index=True, comment="数据源ID")
|
|
alias = Column(String(100), nullable=False, comment="设计器数据集别名")
|
|
field_mapping = Column(JSON, default=dict, comment="字段映射")
|
|
convert_config = Column(JSON, default=dict, comment="转换配置")
|