-- ----------------------------
-- 设备表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_device`;
CREATE TABLE mortals_xhx_device(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `deviceName` varchar(20)     COMMENT '设备名称',
    `deviceCode` varchar(256) NOT NULL    COMMENT '设备编码,SN码等,默认为MAC地址',
    `deviceMac` varchar(64)     COMMENT '设备的MAC地址',
    `siteId` bigint(20)     COMMENT '站点Id,来源基础服务平台',
    `siteCode` varchar(256)     COMMENT '站点编号,来源基础服务平台',
    `siteName` varchar(256)     COMMENT '站点名称',
    `platformId` bigint(20)     COMMENT '平台系统Id',
    `platformName` varchar(256)     COMMENT '平台系统名称',
    `productId` bigint(20)     COMMENT '产品Id',
    `productName` varchar(256)     COMMENT '产品名称',
    `deviceFirmId` bigint(20)     COMMENT '设备生产厂商ID',
    `deviceFirmname` varchar(20)     COMMENT '设备生产厂商名称',
    `deviceSrc` tinyint(2)     COMMENT '设备来源(0.子设备,1.网关设备,2.直连设备)',
    `deviceDataSourceWay` tinyint(2)     COMMENT '数据获取方式(0.主动上报,1.被动拉取)',
    `lon` varchar(32)     COMMENT '经度',
    `lati` varchar(32)     COMMENT '经度',
    `deviceInBuilding` tinyint(2)     COMMENT '所属楼栋',
    `deviceInFloor` tinyint(2)     COMMENT '所属楼层',
    `defectsLiabilityPeriod` datetime     COMMENT '保修期至',
    `leadingOfficial` varchar(10)     COMMENT '负责人',
    `leadingOfficialTelephone` varchar(11)     COMMENT '联系电话',
    `isReceiveMess` tinyint(2)     COMMENT '是否接收异常短(0.否,1.是)',
    `devicePhotoPath` varchar(256)     COMMENT '设备图片',
    `ip` varchar(64)     COMMENT '设备访问ip',
    `centernum` varchar(64)     COMMENT '中心设备编码',
    `port` varchar(64)     COMMENT '端口',
    `deviceTopic` varchar(100)     COMMENT '设备topic信息',
    `deviceStatus` tinyint(2)     COMMENT '设备状态 (0.未激活,1.离线,2.在线)',
    `enabled` tinyint(2)     COMMENT '启用状态 (0.停止,1.启用)',
    `deviceAuthCode` varchar(512)     COMMENT '设备授权码',
    `deviceRemark` varchar(256)     COMMENT '备注',
    `onlineTime` datetime     COMMENT '最近上线时间',
    `offlineTime` datetime     COMMENT '最近离线时间',
    `deleted` tinyint(2)     COMMENT '是否删除(0.否,1.是)',
    `source` tinyint(2)     COMMENT '收不来源(0.旧设备,1.新设备)',
    `createUserId` bigint(20) NOT NULL    COMMENT '创建用户',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备';

-- ----------------------------
-- 平台系统表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_platform`;
CREATE TABLE mortals_xhx_platform(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `platformName` varchar(20) NOT NULL    COMMENT '平台名称,名称唯一',
    `platformSn` varchar(256) NOT NULL    COMMENT '平台编码,编码唯一(编码加上站点编码,如phxt-51010251-1做Vhost虚拟机编码)',
    `sendMsgType` tinyint(2) NOT NULL    COMMENT '发送第三方平台消息类型(0.http,1.jms)',
    `sendUrl` varchar(512)     COMMENT '发送参数请求地址',
    `callbackUrl` varchar(512)     COMMENT '回调参数地址',
    `sendSwitch` tinyint(2) NOT NULL    COMMENT '是否启用发送消息(0.停用,1.启用)',
    `homeUrl` varchar(512)     COMMENT '首页地址',
    `platformRemark` varchar(256)     COMMENT '备注',
    `createUserId` bigint(20) NOT NULL    COMMENT '创建用户',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='平台系统';

-- ----------------------------
-- 产品表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_product`;
CREATE TABLE mortals_xhx_product(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `platformId` bigint(20) NOT NULL  AUTO_INCREMENT  COMMENT '关联平台',
    `productName` varchar(20) NOT NULL    COMMENT '产品名称,名称唯一',
    `productCode` varchar(256)     COMMENT '产品编码',
    `productRemark` varchar(256)     COMMENT '备注',
    `createUserId` bigint(20) NOT NULL    COMMENT '创建用户',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品';



-- ----------------------------
-- 设备生产厂商表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_firm`;
CREATE TABLE mortals_xhx_firm(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `firmName` varchar(128) NOT NULL    COMMENT '设备生产厂商名称',
    `firmCode` varchar(128)     COMMENT '设备生产商编码',
    `firmRemark` varchar(64)     COMMENT '备注',
    `createUserId` bigint(20) NOT NULL    COMMENT '创建用户',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备生产厂商';

-- ----------------------------
-- 设备告警日志表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_device_alarm_info`;
CREATE TABLE mortals_xhx_device_alarm_info(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `alarmTime` datetime NOT NULL    COMMENT '告警时间',
    `alarmDevice` bigint(20) NOT NULL    COMMENT '告警设备',
    `alarmType` tinyint(2) NOT NULL    COMMENT '告警类型,(0.离线)',
    `alarmLevel` tinyint(2) NOT NULL    COMMENT '告警级别(0.危险,1.次要,2.一般)',
    `alarmReceivePersonnel` varchar(32) NOT NULL    COMMENT '接收人员[设备管理的责任人]',
    `receivePersonnelTelephone` varchar(11) NOT NULL    COMMENT '接收人员电话',
    `alarmStatus` tinyint(2)     COMMENT '告警状态,来自工单系统(0.未清除,1.清除未确认,2.清除已确认)',
    `alarmContent` varchar(512) NOT NULL    COMMENT '告警详细内容',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备告警日志';

-- ----------------------------
-- 设备模块信息表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_device_module`;
CREATE TABLE mortals_xhx_device_module(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `moduleName` varchar(256) NOT NULL    COMMENT '模块名称',
    `moduleMsgCode` varchar(256) NOT NULL    COMMENT '模块消息编码,与上报消息头编码一致,唯一',
    `createTime` datetime     COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备模块信息';

-- ----------------------------
-- 设备模块使用频率表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_device_module_use`;
CREATE TABLE mortals_xhx_device_module_use(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `moduleName` varchar(256) NOT NULL    COMMENT '模块名称',
    `moduleMsgCode` varchar(256) NOT NULL    COMMENT '模块消息编码',
    `deviceId` bigint(20) NOT NULL    COMMENT '所属设备',
    `useNum` int     COMMENT '调用次数',
    `createTime` datetime     COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备模块使用频率';


-- ----------------------------
-- 设备告警配置表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_alarm_config`;
CREATE TABLE mortals_xhx_alarm_config(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `productId` bigint(20) NOT NULL    COMMENT '产品',
    `alarmType` tinyint(2) NOT NULL    COMMENT '告警类型(0.离线)',
    `alarmLevel` tinyint(2) NOT NULL    COMMENT '告警级别,(0.危险,1.次要,2.一般)',
    `alarmPusW1ay` tinyint(2) NOT NULL    COMMENT '推送方式,(0.不推送,1.短信)',
    `enabled` tinyint(2) NOT NULL    COMMENT '是否启用(0.不启用,1.启用)',
    `remark` varchar(2048)     COMMENT '备注',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备告警配置';





-- ----------------------------
-- 短信发送记录表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_alarm_sms_send`;
CREATE TABLE mortals_xhx_alarm_sms_send(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `mobile` varchar(11) NOT NULL    COMMENT '电话号码',
    `sendMess` varchar(200) NOT NULL    COMMENT '发送内容',
    `sendStatus` tinyint(2) NOT NULL    COMMENT '发送状态(0.未发送,1.提交,2.发送成功,3.发生失败)',
    `sendTime` datetime NOT NULL    COMMENT '发送时间',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
    `receiver` varchar(200) NOT NULL    COMMENT '接收人',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='短信发送记录';

-- ----------------------------
-- 设备日志表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_device_log`;
CREATE TABLE mortals_xhx_device_log(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `traceID` varchar(64)     COMMENT 'traceId,日志追踪id',
    `deviceId` bigint(20)     COMMENT '设备ID',
    `deviceCode` varchar(32) NOT NULL    COMMENT '设备编号',
    `deviceName` varchar(32) NOT NULL    COMMENT '设备名称,设置设备名称。',
    `messageHead` varchar(64) NOT NULL    COMMENT '业务消息头标识',
    `logType` tinyint(2) NOT NULL    COMMENT '消息类型,(0.上行,1.下行)',
    `content` varchar(2048)     COMMENT '内容',
    `createUserId` bigint(20) NOT NULL    COMMENT '创建用户',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备日志';



-- ----------------------------
-- 站点统计表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_sitestat`;
CREATE TABLE mortals_xhx_sitestat(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT '主键ID,主键,自增长',
    `siteId` bigint(20)     COMMENT '站点Id,来源基础服务平台',
    `siteCode` varchar(256)     COMMENT '站点编号,来源基础服务平台',
    `siteName` varchar(256)     COMMENT '站点名称',
    `deviceTotal` int(9)     COMMENT '设备总数',
    `onlineCount` int(9)     COMMENT '在线数量',
    `offlineCount` int(9)     COMMENT '离线数量',
    `stopCount` int(9)     COMMENT '停用数量',
    `unActiveCount` int(9) NOT NULL    COMMENT '待激活数量',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='站点统计';

-- ----------------------------
-- 设备统计表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_device_stat`;
CREATE TABLE mortals_xhx_device_stat(
    `id` bigint(20)   AUTO_INCREMENT  COMMENT 'ID',
    `deviceTotalCount` int(9)     COMMENT '设备总数',
    `deviceAddCount` int(9)     COMMENT '昨日新增减少设备数量',
    `siteTotalCount` int(9)     COMMENT '监控站点数量',
    `siteAddCount` int(9)     COMMENT '昨日新增站点数量',
    `deviceOnlineCount` int(9)     COMMENT '在线设备数量',
    `deviceOnlineRatio` double     COMMENT '在线率',
    `deviceOfflineCount` int(9) NOT NULL    COMMENT '离线设备数量',
    `deviceOfflineRatio` double NOT NULL    COMMENT '离线率',
    `deviceStopCount` int(9) NOT NULL    COMMENT '停用设备数量',
    `deviceStopRatio` double NOT NULL    COMMENT '停用率',
    `alarmTotalCount` int(9) NOT NULL    COMMENT '今日告警数量',
    `alarmAddCount` int(9) NOT NULL    COMMENT '昨日新增减少数量',
    `pushTotalCount` int(9) NOT NULL    COMMENT '今日消息推送数量',
    `pushAddCount` int(9) NOT NULL    COMMENT '昨日新增减少数量',
    `uploadMessageTotalCount` int(9) NOT NULL    COMMENT '今日上行消息数量',
    `downloadMessageTotalCount` int(9) NOT NULL    COMMENT '今日下行消息数量',
    `year` int(9) NOT NULL    COMMENT '年',
    `month` int(9) NOT NULL    COMMENT '月',
    `day` int(9) NOT NULL    COMMENT '日',
    `createTime` datetime NOT NULL    COMMENT '创建时间',
    `updateUserId` bigint(20)     COMMENT '更新用户',
    `updateTime` datetime     COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备统计';