CREATE TABLE IF NOT EXISTS `dt_define_type` (
  `id` varchar(40) NOT NULL COMMENT '主键',
  `code` varchar(40) NOT NULL COMMENT '编码-全局唯一',
  `name` varchar(200) NOT NULL COMMENT '名称',
  `alias_code` varchar(40) NOT NULL COMMENT '别名编码, 集团下唯一 ',
  `alias_name` varchar(200) NOT NULL COMMENT '别名名称',
  `obj_type` varchar(40) DEFAULT NULL COMMENT '大类型:项目建筑楼层空间系统设备竖井',
  `group_code` varchar(40) NOT NULL DEFAULT '0' COMMENT '集团编码',
  `project_id` varchar(40) NOT NULL DEFAULT '0' COMMENT '项目id',
  `major_code` varchar(40) DEFAULT NULL COMMENT '专业编码, 上级类型是系统or设备时该字段有值',
  `system_code` varchar(40) DEFAULT NULL COMMENT '系统编码,上级类型是设备时该字段有值,值为系统类型的code',
  `equipment_code` varchar(40) DEFAULT NULL COMMENT '设备编码,上级类型是部件时该字段有值,值为设备类型的code',
  `parent_code` varchar(40) DEFAULT NULL COMMENT '上级类型code,默认为"0"',
  `version` varchar(40) DEFAULT NULL COMMENT '最后修改版本',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_code` (`code`) USING BTREE,
  KEY `idx_alias_code` (`alias_code`) USING BTREE,
  KEY `idx_parent_code` (`parent_code`) USING BTREE,
  KEY `idx_major_code` (`major_code`) USING BTREE,
  KEY `idx_code_1` (`group_code`,`project_id`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='对象类型定义';

CREATE TABLE IF NOT EXISTS `dt_define_info` (
  `id` varchar(40) NOT NULL,
  `code` varchar(100) NOT NULL COMMENT '信息点编码,同类型下唯一,标准驼峰格式',
  `name` varchar(200) DEFAULT NULL COMMENT '信息点名称',
  `alias_code` varchar(100) DEFAULT NULL COMMENT '别名编码',
  `alias_name` varchar(200) DEFAULT NULL COMMENT '别名名称',
  `class_code` varchar(40) DEFAULT NULL COMMENT '类型编码',
  `group_code` varchar(40) NOT NULL DEFAULT '0' COMMENT '集团编码',
  `project_id` varchar(40) NOT NULL DEFAULT '0' COMMENT '项目id',
  `category` varchar(40) DEFAULT NULL COMMENT '信息点分类:静态,脉冲,阶段,时序',
  `first_tag` varchar(40) DEFAULT NULL COMMENT '一级标签',
  `second_tag` varchar(40) DEFAULT NULL COMMENT '二级标签',
  `priority` varchar(10) DEFAULT NULL COMMENT '优先级',
  `input_mode` varchar(40) DEFAULT NULL COMMENT '输入方式',
  `unit` varchar(40) DEFAULT NULL COMMENT '单位',
  `data_type` varchar(40) DEFAULT NULL COMMENT '数据类型',
  `is_multiple` int(11) DEFAULT NULL COMMENT '是否复数',
  `is_region` int(11) DEFAULT NULL COMMENT '是否区间',
  `formater` varchar(40) DEFAULT NULL COMMENT '数据格式',
  `data_source` json DEFAULT NULL COMMENT '数据源取值范围/枚举值清单等,根据dataType有不同的内容',
  `remark` text COMMENT '备注',
  `sub_flag` int(11) DEFAULT NULL COMMENT '子分类标记:是否可以按此信息点进行子分类替换,同一类型下目前只支持一个子分类信息点',
  `weak_point` int(11) DEFAULT NULL COMMENT '虚点',
  `show_order` int(11) DEFAULT NULL COMMENT '显示顺序',
  `version` varchar(40) DEFAULT NULL COMMENT '最后修改版本',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_class_1` (`class_code`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='信息点定义表';

CREATE TABLE IF NOT EXISTS `dt_define_graph` (
  `id` varchar(40) NOT NULL,
  `code` varchar(40) DEFAULT NULL COMMENT '编码',
  `name` varchar(200) DEFAULT NULL COMMENT '名称',
  `first_category` varchar(40) DEFAULT NULL COMMENT '一级分类',
  `second_category` varchar(40) DEFAULT NULL COMMENT '二级分类',
  `remark` varchar(255) DEFAULT NULL COMMENT '分类说明',
  `object_types` varchar(255) DEFAULT NULL COMMENT '关系两侧对象类别',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_code` (`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='图类型表';

CREATE TABLE IF NOT EXISTS `dt_define_rel` (
  `id` varchar(40) NOT NULL,
  `code` varchar(40) DEFAULT NULL COMMENT '编码',
  `name` varchar(200) DEFAULT NULL COMMENT '名称',
  `graph_code` varchar(40) DEFAULT NULL COMMENT '图编码',
  `directional` int(11) DEFAULT NULL COMMENT '边方向性',
  `attribute` varchar(255) DEFAULT NULL COMMENT '边属性',
  `target_objs` varchar(255) DEFAULT NULL COMMENT '主要连接对象',
  `remark` varchar(45) DEFAULT NULL,
  `before_cal_rel` json NULL COMMENT '计算关系之前需要计算的关系',
  `cal_rule` json NULL COMMENT '计算器,就是计算规则',
  `from_obj_type` varchar(50) NULL DEFAULT NULL COMMENT '边关系左侧的对象分类',
  `to_obj_type` varchar(50) NULL DEFAULT NULL COMMENT '关系右侧的对象分类',
  `automatic_flag` tinyint DEFAULT NULL COMMENT '0-手动计算,1-自动计算',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_code` (`code`) USING BTREE,
  KEY `idx_graph_code` (`graph_code`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='边类型表';

CREATE TABLE IF NOT EXISTS `dt_object` (
  `id` varchar(100) NOT NULL,
  `name` varchar(100) DEFAULT NULL COMMENT '对象名称',
  `local_id` varchar(100) DEFAULT NULL COMMENT '对象本地编码',
  `local_name` varchar(100) DEFAULT NULL COMMENT '对象本地名称',
  `group_code` varchar(40) DEFAULT NULL COMMENT '集团编码',
  `project_id` varchar(40) NOT NULL COMMENT '项目id',
  `obj_type` varchar(40) NOT NULL COMMENT '对象分类',
  `class_code` varchar(40) NOT NULL COMMENT '对象类型编码',
  `grouping` int(11) NOT NULL DEFAULT '1' COMMENT '1单个对象,2对象组',
  `infos` json DEFAULT NULL COMMENT '边类型编码',
  `virtual_codes` json DEFAULT NULL COMMENT '虚点清单',
  `create_app` varchar(40) DEFAULT NULL COMMENT '创建应用',
  `update_app` varchar(40) DEFAULT NULL COMMENT '最后更新应用',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_project_1` (`project_id`,`class_code`,`creation_time`) USING BTREE,
  KEY `idx_project_2` (`project_id`,`creation_time`) USING BTREE,
  KEY `idx_project_3` (`project_id`,`modified_time`) USING BTREE,
  KEY `idx_project_4` (`obj_type`) USING BTREE,
  KEY `idx_project_5` (`project_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='对象实例表';

CREATE TABLE IF NOT EXISTS `dt_relation` (
  `id` varchar(40) NOT NULL,
  `group_code` varchar(40) DEFAULT NULL,
  `project_id` varchar(40) NOT NULL,
  `graph_id` varchar(40) DEFAULT NULL COMMENT '图主键',
  `graph_code` varchar(40) DEFAULT NULL COMMENT '图编码',
  `rel_code` varchar(40) DEFAULT NULL COMMENT '关系编码',
  `rel_value` varchar(50) DEFAULT NULL COMMENT '关系值',
  `obj_from` varchar(60) DEFAULT NULL COMMENT '来源对象',
  `obj_to` varchar(60) DEFAULT NULL COMMENT '目标对象',
  `create_app` varchar(40) DEFAULT NULL COMMENT '创建应用',
  `update_app` varchar(40) DEFAULT NULL COMMENT '最后更新应用',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint DEFAULT '1' COMMENT '合法标识',
  `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_graph_code` (`graph_code`) USING BTREE,
  KEY `idx_1` (`graph_code`,`rel_code`,`obj_from`,`obj_to`,`project_id`) USING BTREE,
  KEY `idx_2` (`graph_id`,`rel_code`,`obj_from`,`obj_to`,`project_id`) USING BTREE,
  KEY `idx_3` (`graph_code`,`rel_code`,`obj_to`,`project_id`) USING BTREE,
  KEY `idx_4` (`graph_id`,`rel_code`,`obj_to`,`project_id`) USING BTREE,
  KEY `idx_5` (`obj_from`) USING BTREE,
  KEY `idx_6` (`obj_to`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='关系实例表';

-- ----------------------------
-- Table structure for relation_project_cal
-- ----------------------------
CREATE TABLE  IF NOT EXISTS `dt_relation_project_cal`  (
`id` varchar(200) NOT NULL COMMENT '主键,32位UUID',
`graph_code` varchar(100) NULL DEFAULT NULL COMMENT '图类型',
`rel_code` varchar(100) NULL DEFAULT NULL COMMENT '关系类型编码',
"rel_code_name" varchar(100) DEFAULT NULL COMMENT '关系类型编码名称',
`source_flag` tinyint(0) NULL DEFAULT NULL COMMENT '是否需要配置源末端',
`automatic_flag` tinyint(0) NULL DEFAULT NULL COMMENT '是否自动计算类型',
`manual` tinyint(0) NULL DEFAULT NULL COMMENT '手动计算类型 1 禁用  2提示引导 3手动维护',
"group_code" varchar(40) DEFAULT NULL COMMENT '集团编码',
`project_id` varchar(200) NULL DEFAULT NULL COMMENT '项目id',
`computing_time` varchar(100) NULL DEFAULT NULL COMMENT '最后一次自动计算时间',
`computational_state` tinyint(0) NULL DEFAULT NULL COMMENT '计算状态 1初始状态 2需要计算 3计算中 4等待中 5计算失败（如果处于计算中状态，则不再次调用）',
`zone_type` varchar(50) NULL DEFAULT NULL COMMENT '业务分区类型',
`system_type` tinyint(0) NULL DEFAULT NULL COMMENT '风系统1,水系统0',
`rel_manual_type` varchar(200) NULL DEFAULT NULL COMMENT '手动计算关系类型',
`mep_system_type` json NULL DEFAULT NULL COMMENT '机电系统类型',
`compute_version` tinyint(0) NULL DEFAULT NULL COMMENT '计算版本',
`creator` varchar(32) NULL DEFAULT NULL COMMENT '创建人',
`creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
`modifier` varchar(32) NULL DEFAULT NULL COMMENT '最后修改人',
`modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
`valid` tinyint(0) NULL DEFAULT NULL COMMENT '合法标识',
`ts` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP  ON UPDATE CURRENT_TIMESTAMP NOT NULL COMMENT '乐观锁',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT = Dynamic COMMENT='项目关系记录表';

CREATE TABLE IF NOT EXISTS `dt_equip_class_rel`  (
 `id` varchar(40) NOT NULL COMMENT '主键,32位UUID',
 `group_code` varchar(40) NULL DEFAULT NULL COMMENT '集团编码',
 `project_id` varchar(40) NULL DEFAULT NULL COMMENT '项目id',
 `source_equip_code` varchar(40) NULL DEFAULT NULL COMMENT '源端设备类编码',
 `end_equip_code` varchar(40) NULL DEFAULT NULL COMMENT '末端设备类编码',
 `graph_code` varchar(40) NULL DEFAULT NULL COMMENT '图类型编码',
 `rel_code` varchar(40) NULL DEFAULT NULL COMMENT '边类型编码',
 `creator` varchar(32) NULL DEFAULT NULL COMMENT '创建人',
 `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间',
 `modifier` varchar(32) NULL DEFAULT NULL COMMENT '最后修改人',
 `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间',
 `valid` tinyint(0) NULL DEFAULT 1 COMMENT '合法标识',
 `ts` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '乐观锁',
 PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '项目设备类边关系表' ROW_FORMAT = Dynamic;