@startuml

Abstract class 指标 {
    机构

}

class 总账指标{
    本期贷方余额
    本期贷方发生额
    本期借方余额
    本期借方发生额
    上期贷方余额
    上期借方余额
}

class 普通指标{
    本期值
    本期调整值
    上期值
    上年同期值
    上年年末值
    上两年年末值
    上三年年末值
}

class 指标定义 {
    指标名称
    指标编码
    指标频度
    数据类型
    数据精度
    指标含义
    状态
    是否常用指标库
    是否启用
    机构适用范围
}

class 业务分类 {
    编码
    名称
}
class 维度 {
    编码
    名称
    值域
}
class 值域引擎 {

}

class 字典
class SQL {
    源连接
    维度表达式
}
class 字典项 {
    维度值
    维度值名称
}

class 机构
Abstract class 指标公式 {
    版本号
    启用日期
    禁用日期
}
class SQL公式 {
    公式信息
    公式反查信息
    业务信息
}
class 运算公式 {
    公式信息
}
class ID公式 {
    科目号
}

指标公式 <|-- SQL公式
指标公式 <|-- 运算公式
指标公式 <|-- ID公式



指标 "*"*--"1" 指标定义
指标定义 "1"*--"*" 机构

指标定义 "1"*--"*" 指标公式

指标 <|-- 总账指标
指标 <|-- 普通指标
指标 "1"--"1"机构

业务分类 -- 维度

值域引擎 <|-- 字典
值域引擎 <|-- SQL
值域引擎 -- 维度
字典 "1"--"*" 字典项
class 客户分类{
 客户分类类型
}
class 指标类型 {
    类型名称
    类型值
}
class 客户分类类型

客户分类类型 "1"--"*" 客户分类
指标类型 <|-- 指标业务分类
指标类型 <|-- 客户分类

指标定义 "1"--"1" 指标业务分类
指标定义 "1"--"*" 客户分类

class 指标工厂

指标工厂 -- 指标定义
指标工厂 -- 维度
@enduml
