From 22195458c419e565b7a3ef0ce58a97a223689184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=B1=BC=E5=B9=B2?= <1810377322@163.com> Date: Tue, 30 Sep 2025 08:40:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=EF=BC=8C=E5=91=8A=E8=AD=A6=E5=88=97=E8=A1=A8=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E3=80=81=E5=91=8A=E8=AD=A6=E5=88=97=E8=A1=A8=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=BB=A5=E5=8F=8A=E4=B8=8B=E5=8F=91=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/hma_iot.sql | 1961 +++++++++++++++++ .../cc/iotkit/model/alert/AlertRecord.java | 13 + .../cc/iotkit/model/device/DeviceInfo.java | 1 + .../cc/iotkit/model/device/DeviceIssue.java | 69 + .../iotkit/data/manager/IAlertRecordData.java | 3 + .../iotkit/data/manager/IDeviceInfoData.java | 6 +- .../iotkit/data/manager/IDeviceIssueData.java | 36 + .../data/service/DeviceInfoDataCache.java | 12 +- .../service/DeviceInfoPropertyDataCache.java | 13 +- .../data/dao/DeviceIssueRepository.java | 33 + .../cc/iotkit/data/model/TbAlertRecord.java | 11 +- .../cc/iotkit/data/model/TbDeviceIssue.java | 65 + .../data/service/AlertRecordDataImpl.java | 69 +- .../data/service/DeviceInfoDataImpl.java | 123 +- .../data/service/DeviceIssueDataImpl.java | 74 + .../iotkit/data/service/SysDeptDataImpl.java | 38 +- .../iotkit/manager/config/PDFGenerator.java | 5 +- .../manager/controller/AlertController.java | 33 +- .../manager/controller/DeviceController.java | 85 +- .../controller/DeviceIssueController.java | 185 ++ .../manager/controller/ProductController.java | 2 +- .../manager/controller/StatsController.java | 51 +- .../manager/dto/bo/device/DeviceQueryBo.java | 4 + .../vo/deviceinfo/AlertRecordExpordVo.java | 109 + .../dto/vo/deviceinfo/DeviceInfoVo.java | 2 + .../iotkit/manager/service/AlertService.java | 3 + .../manager/service/DeviceCtrlService.java | 15 +- .../manager/service/DeviceStateCheckTask.java | 2 +- .../manager/service/IDeviceIssueService.java | 44 + .../service/impl/DeviceIssueServiceImpl.java | 102 + .../impl/DeviceManagerServiceImpl.java | 78 +- .../iotkit/plugin/main/ThingServiceImpl.java | 79 +- .../controller/SysNoticeController.java | 2 +- .../system/controller/SysUserController.java | 2 +- .../service/impl/SysUserServiceImpl.java | 10 +- 35 files changed, 3210 insertions(+), 130 deletions(-) create mode 100644 doc/hma_iot.sql create mode 100644 iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceIssue.java create mode 100644 iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceIssueData.java create mode 100644 iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/DeviceIssueRepository.java create mode 100644 iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbDeviceIssue.java create mode 100644 iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceIssueDataImpl.java create mode 100644 iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceIssueController.java create mode 100644 iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/AlertRecordExpordVo.java create mode 100644 iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IDeviceIssueService.java create mode 100644 iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceIssueServiceImpl.java diff --git a/doc/hma_iot.sql b/doc/hma_iot.sql new file mode 100644 index 0000000..0df68c1 --- /dev/null +++ b/doc/hma_iot.sql @@ -0,0 +1,1961 @@ +/* + Navicat Premium Data Transfer + + Source Server : 费加罗108 + Source Server Type : MySQL + Source Server Version : 80024 + Source Host : 123.57.78.108:3306 + Source Schema : hma_iot + + Target Server Type : MySQL + Target Server Version : 80024 + File Encoding : 65001 + + Date: 29/09/2025 14:50:05 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for alert_config +-- ---------------------------- +DROP TABLE IF EXISTS `alert_config`; +CREATE TABLE `alert_config` ( + `id` bigint NOT NULL COMMENT '告警配置id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '描述', + `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用', + `level` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警严重度', + `message_template_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '关联消息转发模板ID', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警名称', + `rule_info_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '关联规则引擎ID', + `tenant_id` bigint NULL DEFAULT NULL, + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '配置所属用户', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `messageTemplateId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `ruleInfoId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `message_push` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '0短信1微信2语音,数据用,隔开', + `message_push_ipone` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户通知的手机号码', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for alert_record +-- ---------------------------- +DROP TABLE IF EXISTS `alert_record`; +CREATE TABLE `alert_record` ( + `id` bigint NOT NULL COMMENT '告警记录id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `alert_time` bigint NULL DEFAULT NULL COMMENT '告警时间', + `details` varchar(800) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警详情', + `level` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警严重度(1-5)', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警名称', + `read_flg` bit(1) NULL DEFAULT NULL COMMENT '是否已读', + `tenant_id` bigint NULL DEFAULT NULL, + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '配置所属用户', + `createDept` bigint NULL DEFAULT NULL, + `alertTime` bigint NULL DEFAULT NULL, + `readFlg` bit(1) NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `dept_area_id` bigint NULL DEFAULT NULL COMMENT '部门(区域id)', + `reason_for_removal` bigint NULL DEFAULT NULL COMMENT '清除原因(0测试”、“1点检”、“2已确认)', + `reason_for_removal_flag` bigint NULL DEFAULT 0 COMMENT '1已清除0未清除', + `site` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备安装位置', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `level_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for alert_record_copy1 +-- ---------------------------- +DROP TABLE IF EXISTS `alert_record_copy1`; +CREATE TABLE `alert_record_copy1` ( + `id` bigint NOT NULL COMMENT '告警记录id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `alert_time` bigint NULL DEFAULT NULL COMMENT '告警时间', + `details` varchar(800) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警详情', + `level` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警严重度(1-5)', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '告警名称', + `read_flg` bit(1) NULL DEFAULT NULL COMMENT '是否已读', + `tenant_id` bigint NULL DEFAULT NULL, + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '配置所属用户', + `createDept` bigint NULL DEFAULT NULL, + `alertTime` bigint NULL DEFAULT NULL, + `readFlg` bit(1) NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for category +-- ---------------------------- +DROP TABLE IF EXISTS `category`; +CREATE TABLE `category` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '分类id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '分类描述', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '分类名称', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for channel +-- ---------------------------- +DROP TABLE IF EXISTS `channel`; +CREATE TABLE `channel` ( + `id` bigint NOT NULL COMMENT '通道id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '通道名称', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '图标', + `tenant_id` bigint NULL DEFAULT NULL, + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '标题', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for channel_config +-- ---------------------------- +DROP TABLE IF EXISTS `channel_config`; +CREATE TABLE `channel_config` ( + `id` bigint NOT NULL COMMENT '通道配置id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `channel_id` bigint NULL DEFAULT NULL COMMENT '通道id', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '通道配置参数', + `tenant_id` bigint NULL DEFAULT NULL, + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '通道配置名称', + `createDept` bigint NULL DEFAULT NULL, + `channelId` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for channel_template +-- ---------------------------- +DROP TABLE IF EXISTS `channel_template`; +CREATE TABLE `channel_template` ( + `id` bigint NOT NULL COMMENT '通道模板id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `channel_config_id` bigint NULL DEFAULT NULL COMMENT '通道配置id', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '通道模板内容', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `tenant_id` bigint NULL DEFAULT NULL, + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '通道模板名称', + `createDept` bigint NULL DEFAULT NULL, + `channelConfigId` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_config +-- ---------------------------- +DROP TABLE IF EXISTS `device_config`; +CREATE TABLE `device_config` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '设备配置id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '设备配置json内容', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备名称', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_detector_info +-- ---------------------------- +DROP TABLE IF EXISTS `device_detector_info`; +CREATE TABLE `device_detector_info` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备名称', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备状态', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户id', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `gasTypeKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `dataDetectorValue` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `data_detector_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `gas_type_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_context` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_detector_info_copy1 +-- ---------------------------- +DROP TABLE IF EXISTS `device_detector_info_copy1`; +CREATE TABLE `device_detector_info_copy1` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备名称', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备状态', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户id', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `gasTypeKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `dataDetectorValue` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `data_detector_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `gas_type_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_group +-- ---------------------------- +DROP TABLE IF EXISTS `device_group`; +CREATE TABLE `device_group` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '设备组id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `device_qty` int NULL DEFAULT NULL COMMENT '设备数量', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备组名称', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '分组说明', + `tenant_id` bigint NULL DEFAULT NULL, + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '所属用户', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceQty` int NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_group_mapping +-- ---------------------------- +DROP TABLE IF EXISTS `device_group_mapping`; +CREATE TABLE `device_group_mapping` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '设备组映射id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `group_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备组id', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `groupId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_info +-- ---------------------------- +DROP TABLE IF EXISTS `device_info`; +CREATE TABLE `device_info` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备名称', + `latitude` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '纬度', + `longitude` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '经度', + `model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备类型', + `offline_time` bigint NULL DEFAULT NULL COMMENT '设备离线时间', + `online_time` bigint NULL DEFAULT NULL COMMENT '设备在线时间', + `parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '父级id', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备密钥', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备状态', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户id', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `offlineTime` bigint NULL DEFAULT NULL, + `onlineTime` bigint NULL DEFAULT NULL, + `parentId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `dept_area_id` bigint NULL DEFAULT NULL COMMENT '部门(区域id)', + `site` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `signal_strength` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '信号强度', + `device_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备版本', + `device_status` bigint NULL DEFAULT 0 COMMENT '设备状态0正常1故障2报警3离线', + `node_one` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_two` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_three` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_four` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_five` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_one_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_two_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_three_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_four_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_five_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_one_device` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_two_device` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_three_device` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_four_device` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `node_five_device` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_info_copy1 +-- ---------------------------- +DROP TABLE IF EXISTS `device_info_copy1`; +CREATE TABLE `device_info_copy1` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备名称', + `latitude` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '纬度', + `longitude` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '经度', + `model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备类型', + `offline_time` bigint NULL DEFAULT NULL COMMENT '设备离线时间', + `online_time` bigint NULL DEFAULT NULL COMMENT '设备在线时间', + `parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '父级id', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备密钥', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备状态', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户id', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `offlineTime` bigint NULL DEFAULT NULL, + `onlineTime` bigint NULL DEFAULT NULL, + `parentId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `dept_area_id` bigint NULL DEFAULT NULL COMMENT '部门(区域id)', + `site` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `signal_strength` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '信号强度', + `device_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备版本', + `device_status` bigint NULL DEFAULT 0 COMMENT '设备状态0正常1故障2报警3离线', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_install_info +-- ---------------------------- +DROP TABLE IF EXISTS `device_install_info`; +CREATE TABLE `device_install_info` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户电话', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备名称也就是imei', + `corporate_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '公司名称', + `proposer_time` datetime NULL DEFAULT NULL COMMENT '申请时间', + `proposer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '申请人', + `proposer_team` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '申请班组', + `community_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '小区名称', + `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户名称', + `user_ipone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户电话', + `building_unit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '楼栋单元号', + `room_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '房间号', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户id', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `shut_value_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '切断阀编号', + `gas_meter_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '燃气表号', + `remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `before_installation_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '安装前图片', + `working_of_the_detector_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '装完成探测器工作图片', + `side_leakage_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '测漏图片', + `ignition_picture_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '点火图片', + `install_the_panoramic_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '装完成全景图片', + `of_gas_meter_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '燃气表图片', + `work_order_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '工单图片', + `punching_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '打孔图片', + `fiex_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '装电源线照片', + `state` bigint NULL DEFAULT 0, + `uid_username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '绑定人手机号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_issue +-- ---------------------------- +DROP TABLE IF EXISTS `device_issue`; +CREATE TABLE `device_issue` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户电话', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `field_name` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '字段编号', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `field_name_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '字段编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_ota_detail +-- ---------------------------- +DROP TABLE IF EXISTS `device_ota_detail`; +CREATE TABLE `device_ota_detail` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `module` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `ota_info_id` bigint NULL DEFAULT NULL, + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `step` int NULL DEFAULT NULL, + `task_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `otaInfoId` bigint NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `taskId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_ota_info +-- ---------------------------- +DROP TABLE IF EXISTS `device_ota_info`; +CREATE TABLE `device_ota_info` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL, + `desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `fail` int NULL DEFAULT NULL, + `module` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `package_id` bigint NULL DEFAULT NULL, + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `success` int NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `total` int NULL DEFAULT NULL, + `version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `packageId` bigint NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_sub_user +-- ---------------------------- +DROP TABLE IF EXISTS `device_sub_user`; +CREATE TABLE `device_sub_user` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `tenant_id` bigint NULL DEFAULT NULL, + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备用户id', + `createDept` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for device_tag +-- ---------------------------- +DROP TABLE IF EXISTS `device_tag`; +CREATE TABLE `device_tag` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '标签码', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备id', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '标签名称', + `tenant_id` bigint NULL DEFAULT NULL, + `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '标签值', + `createDept` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for gen_table +-- ---------------------------- +DROP TABLE IF EXISTS `gen_table`; +CREATE TABLE `gen_table` ( + `table_id` bigint NOT NULL COMMENT '编号', + `data_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '数据源名称', + `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '表名称', + `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '表描述', + `sub_table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联子表的表名', + `sub_table_fk_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '子表关联的外键名', + `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '实体类名称', + `tpl_category` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)', + `package_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成包路径', + `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成模块名', + `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成业务名', + `function_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成功能名', + `function_author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成功能作者', + `gen_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)', + `gen_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '/' COMMENT '生成路径(不填默认项目路径)', + `options` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '其它生成选项', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`table_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成业务表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for gen_table_column +-- ---------------------------- +DROP TABLE IF EXISTS `gen_table_column`; +CREATE TABLE `gen_table_column` ( + `column_id` bigint NOT NULL COMMENT '编号', + `table_id` bigint NULL DEFAULT NULL COMMENT '归属表编号', + `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列名称', + `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列描述', + `column_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列类型', + `java_type` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JAVA类型', + `java_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JAVA字段名', + `is_pk` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否主键(1是)', + `is_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否自增(1是)', + `is_required` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否必填(1是)', + `is_insert` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否为插入字段(1是)', + `is_edit` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否编辑字段(1是)', + `is_list` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否列表字段(1是)', + `is_query` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否查询字段(1是)', + `query_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)', + `html_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)', + `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典类型', + `sort` int NULL DEFAULT NULL COMMENT '排序', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`column_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成业务表字段' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for home +-- ---------------------------- +DROP TABLE IF EXISTS `home`; +CREATE TABLE `home` ( + `id` bigint NOT NULL COMMENT '家庭id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '家庭地址', + `current` bit(1) NULL DEFAULT NULL COMMENT '是否为用户当前使用的家庭', + `device_num` int NULL DEFAULT NULL COMMENT '设备数量', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '家庭名称', + `space_num` int NULL DEFAULT NULL COMMENT '空间数量', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `user_id` bigint NULL DEFAULT NULL COMMENT '关联用户id', + `createDept` bigint NULL DEFAULT NULL, + `deviceNum` int NULL DEFAULT NULL, + `spaceNum` int NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `userId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for icon +-- ---------------------------- +DROP TABLE IF EXISTS `icon`; +CREATE TABLE `icon` ( + `id` bigint NOT NULL COMMENT 'iconId', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `icon_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '图标内容', + `icon_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '图标名称', + `icon_type_id` bigint NULL DEFAULT NULL COMMENT '图标分类id', + `tenant_id` bigint NULL DEFAULT NULL, + `version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '版本', + `view_box` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '视窗缩放', + `xmlns` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '命名空间', + `createDept` bigint NULL DEFAULT NULL, + `iconContent` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL, + `iconName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `iconTypeId` bigint NULL DEFAULT NULL, + `viewBox` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for icon_type +-- ---------------------------- +DROP TABLE IF EXISTS `icon_type`; +CREATE TABLE `icon_type` ( + `id` bigint NOT NULL COMMENT '主键id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint NULL DEFAULT NULL, + `type_describe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '分类描述', + `type_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '分类名称', + `createDept` bigint NULL DEFAULT NULL, + `typeDescribe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `typeName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for modbus_info +-- ---------------------------- +DROP TABLE IF EXISTS `modbus_info`; +CREATE TABLE `modbus_info` ( + `id` bigint NOT NULL COMMENT 'id', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品名称', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'productKey', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '说明', + `tenant_id` bigint NULL DEFAULT NULL, + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '配置所属用户', + `update_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for modbus_thing_model +-- ---------------------------- +DROP TABLE IF EXISTS `modbus_thing_model`; +CREATE TABLE `modbus_thing_model` ( + `id` bigint NOT NULL COMMENT '主键', + `model` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '模型内容', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `tenant_id` bigint NULL DEFAULT NULL, + `update_at` bigint NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for notice_read_status +-- ---------------------------- +DROP TABLE IF EXISTS `notice_read_status`; +CREATE TABLE `notice_read_status` ( + `id` bigint NOT NULL COMMENT '主键ID', + `notice_id` bigint NULL DEFAULT NULL COMMENT '通知公告ID', + `user_id` bigint NULL DEFAULT NULL COMMENT '用户ID', + `read_status` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '已读状态:0-未读 1-已读', + `read_time` datetime NULL DEFAULT NULL COMMENT '已读时间', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for notify_message +-- ---------------------------- +DROP TABLE IF EXISTS `notify_message`; +CREATE TABLE `notify_message` ( + `id` bigint NOT NULL COMMENT '通知消息id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `create_at` bigint NULL DEFAULT NULL, + `message_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `status` bit(1) NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `update_at` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `messageType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `updateAt` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for oauth_client +-- ---------------------------- +DROP TABLE IF EXISTS `oauth_client`; +CREATE TABLE `oauth_client` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `allow_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '允许访问的url', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '客户端id', + `client_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '客户端密钥', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '客户端名称', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `allowUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `clientId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `clientSecret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for oper_log +-- ---------------------------- +DROP TABLE IF EXISTS `oper_log`; +CREATE TABLE `oper_log` ( + `id` bigint NOT NULL COMMENT '日志主键', + `business_type` int NULL DEFAULT NULL COMMENT '业务类型(0其它 1新增 2修改 3删除)', + `cost_time` bigint NULL DEFAULT NULL COMMENT '消耗时间', + `dept_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门名称', + `error_msg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '错误消息', + `json_result` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '返回参数', + `method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '请求方法', + `oper_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '操作地址', + `oper_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '操作地点', + `oper_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '操作人员', + `oper_param` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '请求参数', + `oper_time` datetime NULL DEFAULT NULL COMMENT '操作时间', + `oper_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '请求url', + `operator_type` int NULL DEFAULT NULL COMMENT '操作类别(0其它 1后台用户 2手机端用户)', + `request_method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '请求方式', + `status` int NULL DEFAULT NULL COMMENT '操作状态(0正常 1异常)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '操作模块', + `businessType` int NULL DEFAULT NULL, + `costTime` bigint NULL DEFAULT NULL, + `deptName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `errorMsg` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL, + `jsonResult` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL, + `operIp` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `operLocation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `operName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `operParam` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL, + `operTime` datetime NULL DEFAULT NULL, + `operUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `operatorType` int NULL DEFAULT NULL, + `requestMethod` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for ota_device +-- ---------------------------- +DROP TABLE IF EXISTS `ota_device`; +CREATE TABLE `ota_device` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL, + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `status` int NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deviceName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for ota_package +-- ---------------------------- +DROP TABLE IF EXISTS `ota_package`; +CREATE TABLE `ota_package` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL, + `desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `ext_data` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `is_diff` bit(1) NULL DEFAULT NULL, + `md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `module` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `sign` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `sign_method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `size` bigint NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `extData` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `isDiff` bit(1) NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `signMethod` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for plugin_info +-- ---------------------------- +DROP TABLE IF EXISTS `plugin_info`; +CREATE TABLE `plugin_info` ( + `id` bigint NOT NULL COMMENT 'id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '插件配置信息', + `config_schema` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '插件配置项描述信息', + `deploy_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部署方式', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '描述', + `file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '插件包地址', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '插件名称', + `plugin_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '插件包id', + `protocol` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备插件协议类型', + `script` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '插件脚本', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '状态', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '插件类型', + `version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '插件版本', + `createDept` bigint NULL DEFAULT NULL, + `configSchema` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL, + `deployType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `pluginId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for plugin_instance +-- ---------------------------- +DROP TABLE IF EXISTS `plugin_instance`; +CREATE TABLE `plugin_instance` ( + `id` bigint NOT NULL COMMENT 'id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `heartbeat_at` bigint NULL DEFAULT NULL COMMENT '心跳时间', + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '插件主程序所在ip', + `main_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '插件主程序id', + `plugin_id` bigint NULL DEFAULT NULL COMMENT '插件id', + `port` int NOT NULL COMMENT '插件主程序端口', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `heartbeatAt` bigint NULL DEFAULT NULL, + `mainId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `pluginId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for product +-- ---------------------------- +DROP TABLE IF EXISTS `product`; +CREATE TABLE `product` ( + `id` bigint NOT NULL COMMENT '产品id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '品类', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `icon_id` bigint NULL DEFAULT NULL COMMENT '产品图标ID', + `img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '图片', + `is_open_locate` bit(1) NULL DEFAULT NULL COMMENT '是否开启设备定位,true/false', + `keep_alive_time` bigint NULL DEFAULT NULL COMMENT '保活时长(秒)', + `locate_update_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '定位更新方式', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品名称', + `node_type` int NULL DEFAULT NULL COMMENT '节点类型', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `product_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品密钥', + `tenant_id` bigint NULL DEFAULT NULL, + `transparent` bit(1) NULL DEFAULT NULL COMMENT '是否透传,true/false', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户ID', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `iconId` bigint NULL DEFAULT NULL, + `isOpenLocate` bit(1) NULL DEFAULT NULL, + `keepAliveTime` bigint NULL DEFAULT NULL, + `locateUpdateType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `nodeType` int NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `productSecret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `product_type` int NULL DEFAULT 1 COMMENT '0是报警器1是其它', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for product_model +-- ---------------------------- +DROP TABLE IF EXISTS `product_model`; +CREATE TABLE `product_model` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '型号id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '型号', + `modify_at` bigint NULL DEFAULT NULL COMMENT '修改时间', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '名称', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品Key', + `script` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '脚本内容', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '脚本状态', + `tenant_id` bigint NULL DEFAULT NULL, + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '脚本类型', + `createDept` bigint NULL DEFAULT NULL, + `modifyAt` bigint NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for rule_info +-- ---------------------------- +DROP TABLE IF EXISTS `rule_info`; +CREATE TABLE `rule_info` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '规则id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `actions` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '动作', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '描述', + `filters` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '过滤器', + `listeners` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '监听器', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '规则名称', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '状态', + `tenant_id` bigint NULL DEFAULT NULL, + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '规则类型', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户id', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for screen +-- ---------------------------- +DROP TABLE IF EXISTS `screen`; +CREATE TABLE `screen` ( + `id` bigint NOT NULL, + `create_at` bigint NULL DEFAULT NULL, + `is_default` bit(1) NULL DEFAULT NULL, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `port` int NULL DEFAULT NULL, + `resource_file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `isDefault` bit(1) NULL DEFAULT NULL, + `resourceFile` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for screen_api +-- ---------------------------- +DROP TABLE IF EXISTS `screen_api`; +CREATE TABLE `screen_api` ( + `id` bigint NOT NULL, + `api_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `api_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `create_at` bigint NULL DEFAULT NULL, + `data_source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `http_method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `screen_id` bigint NULL DEFAULT NULL, + `script` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL, + `apiParams` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `apiPath` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `dataSource` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `httpMethod` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `screenId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for space +-- ---------------------------- +DROP TABLE IF EXISTS `space`; +CREATE TABLE `space` ( + `id` bigint NOT NULL COMMENT '空间id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `device_num` int NULL DEFAULT NULL COMMENT '设备数量', + `home_id` bigint NULL DEFAULT NULL COMMENT '关联家庭id', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '空间名称', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `deviceNum` int NULL DEFAULT NULL, + `homeId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for space_device +-- ---------------------------- +DROP TABLE IF EXISTS `space_device`; +CREATE TABLE `space_device` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `collect` bit(1) NULL DEFAULT NULL COMMENT '是否收藏', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '空间中的设备id', + `home_id` bigint NULL DEFAULT NULL COMMENT '所属家庭Id', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '空间中的设备名称', + `space_id` bigint NULL DEFAULT NULL COMMENT '空间id', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `homeId` bigint NULL DEFAULT NULL, + `spaceId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_app +-- ---------------------------- +DROP TABLE IF EXISTS `sys_app`; +CREATE TABLE `sys_app` ( + `id` bigint NOT NULL COMMENT '主键id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'appId', + `app_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '应用名称', + `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'appSecret', + `app_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '应用类型', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `appId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `appName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `appSecret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `appType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_config +-- ---------------------------- +DROP TABLE IF EXISTS `sys_config`; +CREATE TABLE `sys_config` ( + `id` bigint NOT NULL COMMENT '参数主键', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `config_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '参数键名', + `config_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '参数名称', + `config_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '系统内置(Y是 N否)', + `config_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '参数键值', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `configKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `configName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `configType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `configValue` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_dept +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dept`; +CREATE TABLE `sys_dept` ( + `id` bigint NOT NULL COMMENT '部门ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `ancestors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '祖级列表', + `del_flag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标志(0代表存在 2代表删除)', + `dept_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门名称', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '邮箱', + `leader` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '负责人', + `order_num` int NULL DEFAULT NULL COMMENT '显示顺序', + `parent_id` bigint NULL DEFAULT NULL COMMENT '父部门ID', + `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '联系电话', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门状态:0正常,1停用', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户ID', + `area_type` bigint(1) UNSIGNED ZEROFILL NULL DEFAULT 0 COMMENT '0是部门1是区域', + `createDept` bigint NULL DEFAULT NULL, + `areaType` int NULL DEFAULT NULL, + `delFlag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deptName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `orderNum` int NULL DEFAULT NULL, + `parentId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `latitude` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '纬度', + `longitude` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '经度', + `site` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_dict_data +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dict_data`; +CREATE TABLE `sys_dict_data` ( + `id` bigint NOT NULL COMMENT '字典编码', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `css_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)', + `dict_label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '字典标签', + `dict_sort` int NULL DEFAULT NULL COMMENT '字典排序', + `dict_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '字典类型', + `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '字典键值', + `is_default` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '是否默认(Y是 N否)', + `list_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '表格字典样式', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '状态(0正常 1停用)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `cssClass` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `dictLabel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `dictSort` int NULL DEFAULT NULL, + `dictType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `dictValue` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `isDefault` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `listClass` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_dict_type +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dict_type`; +CREATE TABLE `sys_dict_type` ( + `id` bigint NOT NULL COMMENT '字典主键', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `dict_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '字典名称', + `dict_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '字典类型', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '状态(0正常 1停用)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `dictName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `dictType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_logininfor +-- ---------------------------- +DROP TABLE IF EXISTS `sys_logininfor`; +CREATE TABLE `sys_logininfor` ( + `id` bigint NOT NULL COMMENT 'ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `browser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '浏览器类型', + `ipaddr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '登录IP地址', + `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '登录地点', + `login_time` datetime NULL DEFAULT NULL COMMENT '访问时间', + `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '提示消息', + `os` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '操作系统', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '登录状态 0成功 1失败', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户账号', + `createDept` bigint NULL DEFAULT NULL, + `loginLocation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `loginTime` datetime NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `userName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_menu`; +CREATE TABLE `sys_menu` ( + `menu_id` bigint NOT NULL COMMENT '菜单ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '组件路径', + `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单图标', + `is_cache` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '是否缓存(0缓存 1不缓存)', + `is_frame` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '是否为外链(0是 1否)', + `menu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单名称', + `menu_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '类型(M目录 C菜单 F按钮)', + `order_num` int NULL DEFAULT NULL COMMENT '显示顺序', + `parent_id` bigint NULL DEFAULT NULL COMMENT '父菜单ID', + `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '路由地址', + `perms` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '权限字符串', + `query_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '路由参数', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单状态(0正常 1停用)', + `visible` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '显示状态(0显示 1隐藏)', + `createDept` bigint NULL DEFAULT NULL, + `isCache` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `isFrame` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `menuType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `orderNum` int NULL DEFAULT NULL, + `queryParam` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`menu_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_notice +-- ---------------------------- +DROP TABLE IF EXISTS `sys_notice`; +CREATE TABLE `sys_notice` ( + `id` bigint NOT NULL COMMENT '公告ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `notice_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '公告内容', + `notice_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '公告标题', + `notice_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '公告类型(1通知 2公告)', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '公告状态(0正常 1关闭)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `noticeContent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `noticeTitle` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `noticeType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_oss +-- ---------------------------- +DROP TABLE IF EXISTS `sys_oss`; +CREATE TABLE `sys_oss` ( + `id` bigint NOT NULL COMMENT '对象存储主键', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件名', + `file_suffix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件后缀名', + `original_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '原名', + `service` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '服务商', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'URL地址', + `createDept` bigint NULL DEFAULT NULL, + `fileName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `fileSuffix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `originalName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_oss_config +-- ---------------------------- +DROP TABLE IF EXISTS `sys_oss_config`; +CREATE TABLE `sys_oss_config` ( + `id` bigint NOT NULL COMMENT '主建', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'accessKey', + `access_policy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '桶权限类型(0private 1public 2custom)', + `bucket_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '桶名称', + `config_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '配置key', + `domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '自定义域名', + `endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '访问站点', + `ext1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '扩展字段', + `is_https` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '是否https(0否 1是)', + `prefix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '前缀', + `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '域', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '秘钥', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '是否默认(0=是,1=否)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `accessKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `accessPolicy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `bucketName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `configKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `isHttps` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `secretKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_post +-- ---------------------------- +DROP TABLE IF EXISTS `sys_post`; +CREATE TABLE `sys_post` ( + `id` bigint NOT NULL COMMENT '岗位序号', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `post_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '岗位编码', + `post_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '岗位名称', + `post_sort` int NULL DEFAULT NULL COMMENT '岗位排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '状态(0正常 1停用)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `postCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `postName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `postSort` int NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_role +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role`; +CREATE TABLE `sys_role` ( + `id` bigint NOT NULL COMMENT '角色ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `data_scope` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)', + `del_flag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标志(0代表存在 2代表删除)', + `dept_check_strictly` bit(1) NULL DEFAULT NULL COMMENT '部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )', + `menu_check_strictly` bit(1) NULL DEFAULT NULL COMMENT '菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `role_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色权限', + `role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色名称', + `role_sort` int NULL DEFAULT NULL COMMENT '角色排序', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色状态(0正常 1停用)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `dataScope` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `delFlag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deptCheckStrictly` bit(1) NULL DEFAULT NULL, + `menuCheckStrictly` bit(1) NULL DEFAULT NULL, + `roleKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `roleName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `roleSort` int NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_role_dept +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role_dept`; +CREATE TABLE `sys_role_dept` ( + `id` bigint NOT NULL COMMENT '主键', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID', + `role_id` bigint NULL DEFAULT NULL COMMENT '角色ID', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `deptId` bigint NULL DEFAULT NULL, + `roleId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role_menu`; +CREATE TABLE `sys_role_menu` ( + `id` bigint NOT NULL COMMENT '主键', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `menu_id` bigint NULL DEFAULT NULL COMMENT '菜单ID', + `role_id` bigint NULL DEFAULT NULL COMMENT '角色ID', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `menuId` bigint NULL DEFAULT NULL, + `roleId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `sys_tenant`; +CREATE TABLE `sys_tenant` ( + `id` bigint NOT NULL COMMENT 'id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `account_count` bigint NULL DEFAULT NULL COMMENT '用户数量(-1不限制)', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '地址', + `company_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '企业名称', + `contact_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '联系电话', + `contact_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '联系人', + `del_flag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标志(0代表存在 2代表删除)', + `domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '域名', + `expire_time` datetime NULL DEFAULT NULL COMMENT '过期时间', + `intro` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '企业简介', + `license_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '统一社会信用代码', + `package_id` bigint NULL DEFAULT NULL COMMENT '租户套餐编号', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '租户状态(0正常 1停用)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `createDept` bigint NULL DEFAULT NULL, + `accountCount` bigint NULL DEFAULT NULL, + `companyName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `contactPhone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `contactUserName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `delFlag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `expireTime` datetime NULL DEFAULT NULL, + `licenseNumber` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `packageId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_tenant_package +-- ---------------------------- +DROP TABLE IF EXISTS `sys_tenant_package`; +CREATE TABLE `sys_tenant_package` ( + `id` bigint NOT NULL COMMENT '租户套餐id', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `del_flag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标志(0代表存在 2代表删除)', + `menu_check_strictly` bit(1) NULL DEFAULT NULL COMMENT '菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)', + `menu_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '关联菜单id', + `package_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '套餐名称', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '状态(0正常 1停用)', + `createDept` bigint NULL DEFAULT NULL, + `delFlag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `menuCheckStrictly` bit(1) NULL DEFAULT NULL, + `menuIds` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL, + `packageName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_user +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user`; +CREATE TABLE `sys_user` ( + `id` bigint NOT NULL COMMENT '用户ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `avatar` bigint NULL DEFAULT NULL COMMENT '用户头像', + `del_flag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标志(0代表存在 2代表删除)', + `dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户邮箱', + `login_date` datetime NULL DEFAULT NULL COMMENT '最后登录时间', + `login_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '最后登录IP', + `nick_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户昵称', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '密码', + `phonenumber` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '手机号码', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', + `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户性别', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '帐号状态(0正常 1停用)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户账号', + `user_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户类型(sys_user系统用户)', + `createDept` bigint NULL DEFAULT NULL, + `delFlag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `deptId` bigint NULL DEFAULT NULL, + `loginDate` datetime NULL DEFAULT NULL, + `loginIp` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `nickName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `userName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `userType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `dept_area_id` bigint NULL DEFAULT NULL COMMENT '部门(区域id)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_user_area +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user_area`; +CREATE TABLE `sys_user_area` ( + `id` bigint NOT NULL COMMENT 'ID', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `sys_dept_id` bigint NULL DEFAULT NULL COMMENT '部门表里区域的id(area_type=1)', + `sys_user_id` bigint NULL DEFAULT NULL COMMENT '用户id', + `tenant_id` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_user_post +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user_post`; +CREATE TABLE `sys_user_post` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `post_id` bigint NULL DEFAULT NULL COMMENT '岗位ID', + `tenant_id` bigint NULL DEFAULT NULL, + `user_id` bigint NULL DEFAULT NULL COMMENT '用户ID', + `createDept` bigint NULL DEFAULT NULL, + `postId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `userId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_user_role +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user_role`; +CREATE TABLE `sys_user_role` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `role_id` bigint NULL DEFAULT NULL COMMENT '角色ID', + `tenant_id` bigint NULL DEFAULT NULL, + `user_id` bigint NULL DEFAULT NULL COMMENT '用户ID', + `createDept` bigint NULL DEFAULT NULL, + `roleId` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `userId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for t_d_feedback_evaluation +-- ---------------------------- +DROP TABLE IF EXISTS `t_d_feedback_evaluation`; +CREATE TABLE `t_d_feedback_evaluation` ( + `id` bigint NOT NULL COMMENT 'ID', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容', + `problem_screenshot` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '问题截图', + `message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息', + `customer_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户姓名', + `evaluation_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评价类型1意见反馈,2用户评价,3师傅评价 ', + `service_satisfaction` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务满意度', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备ID', + `worder_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工单ID', + `is_solve` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '问题是否解决1解决2未解决', + `customer_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户电话', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `customer_id` bigint NULL DEFAULT NULL COMMENT '客户id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '意见反馈评价表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for t_d_iccid_record +-- ---------------------------- +DROP TABLE IF EXISTS `t_d_iccid_record`; +CREATE TABLE `t_d_iccid_record` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `user_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '厂商编号|合作商编号', + `iccid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物联网卡号', + `sim_type` int NULL DEFAULT 1 COMMENT '物联网卡运营商', + `dateline` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发货日期', + `state` int NULL DEFAULT 0 COMMENT '状态(0,已授权,1未授权,2未支付)', + `order_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单id', + `authorization_code` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '授权码', + `source` int NULL DEFAULT 1 COMMENT '物联网卡来源(0线下,1线上)', + `user` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '厂商名称|合作商名称', + `imei` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'imei', + `tenant_id` bigint NULL DEFAULT 0 COMMENT '租户编号', + `deleted` int NULL DEFAULT 0 COMMENT '逻辑删除;0:未删除(默认);1:已删除', + `valid_days` int NULL DEFAULT NULL COMMENT '有效天数', + `expiration_time` datetime NULL DEFAULT NULL COMMENT '到期时间', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `createDept` bigint NULL DEFAULT NULL, + `authorizationCode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `expirationTime` datetime NULL DEFAULT NULL, + `orderId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `simType` int NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `userCode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `validDays` int NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `INDEX_ORDER_ID`(`order_id`) USING BTREE COMMENT '订单id' +) ENGINE = InnoDB AUTO_INCREMENT = 724642512732230 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '物联网卡表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for t_d_worder +-- ---------------------------- +DROP TABLE IF EXISTS `t_d_worder`; +CREATE TABLE `t_d_worder` ( + `id` bigint NOT NULL COMMENT '工单id', + `worder_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '工单编号', + `worder_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '工单内容', + `worder_type` int NULL DEFAULT NULL COMMENT '工单类型 0:预约装机,1:拆迁机,2:设备维修,3:滤芯更换', + `product_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '设备id(对应t_d_product表id)', + `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '订单id', + `order_status` int NULL DEFAULT 0 COMMENT '订单状态 0:未反馈 (默认),1:已反馈', + `worder_status` int NULL DEFAULT 0 COMMENT '工单状态 0:待处理(默认),1:处理中,2:已处理,3:已退单,4:已作废,5未分配', + `report_time` datetime NULL DEFAULT NULL COMMENT '上报时间', + `assign_userid` bigint NULL DEFAULT NULL COMMENT '指派人id', + `assign_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `assign_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '指派人姓名', + `assign_time` datetime NULL DEFAULT NULL COMMENT '指派时间', + `problem_screenshot` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '问题截图', + `message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '消息', + `reservation_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '预约时间', + `customer_id` bigint NULL DEFAULT NULL COMMENT '客户id', + `customer_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '客户姓名', + `customer_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '客户联系方式', + `customer_area_id` bigint NULL DEFAULT NULL COMMENT '客户服务地址编码', + `customer_address` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '服务地址(客户详细地址)', + `worder_back_time` datetime NULL DEFAULT NULL COMMENT '退单时间', + `worder_back_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '退单原因', + `finish_time` datetime NULL DEFAULT NULL COMMENT '工单完成时间', + `finish_picture` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '完成后图片', + `feedback` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '反馈信息', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `problem_type` int NULL DEFAULT NULL COMMENT '问题类型 0:一般问题,1:中等问题,2:严重问题,3:重大问题', + `fw_id` bigint NULL DEFAULT NULL COMMENT '服务商ID需要分配订单', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `tenant_id` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工单表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for task_info +-- ---------------------------- +DROP TABLE IF EXISTS `task_info`; +CREATE TABLE `task_info` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '主键', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `actions` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '任务输出', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '描述', + `expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '表达式', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '任务名称', + `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '操作备注', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '任务状态', + `tenant_id` bigint NULL DEFAULT NULL, + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '任务类型', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for thing_model +-- ---------------------------- +DROP TABLE IF EXISTS `thing_model`; +CREATE TABLE `thing_model` ( + `id` bigint NOT NULL COMMENT '主键', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `model` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '模型内容', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `tenant_id` bigint NULL DEFAULT NULL, + `createDept` bigint NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for user_info +-- ---------------------------- +DROP TABLE IF EXISTS `user_info`; +CREATE TABLE `user_info` ( + `id` bigint NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '地址', + `avatar_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '头像地址', + `curr_home_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '当前家庭Id', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'email', + `gender` int NULL DEFAULT NULL COMMENT '性别 0-未知 1-male,2-female', + `nick_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户昵称', + `permissions` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '权限', + `roles` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色', + `secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '密钥(密码加密后的内容)', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号', + `type` int NULL DEFAULT NULL COMMENT '用户类型 0:平台用户 1:终端用户', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户账号使用的平台openid', + `use_platforms` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户使用的账户', + `createDept` bigint NULL DEFAULT NULL, + `avatarUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `currHomeId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `nickName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `usePlatforms` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `site` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '客户详细地址', + `dept_area_id` bigint NULL DEFAULT NULL COMMENT '部门表-区域id', + `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for virtual_device +-- ---------------------------- +DROP TABLE IF EXISTS `virtual_device`; +CREATE TABLE `virtual_device` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_at` bigint NULL DEFAULT NULL COMMENT '创建时间', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '虚拟设备名称', + `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '产品key', + `script` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '设备行为脚本', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '运行状态', + `tenant_id` bigint NULL DEFAULT NULL, + `trigger` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '触发方式执行方式', + `trigger_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '触发表达式', + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '虚拟类型', + `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '所属用户', + `createDept` bigint NULL DEFAULT NULL, + `createAt` bigint NULL DEFAULT NULL, + `productKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `triggerExpression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for virtual_device_mapping +-- ---------------------------- +DROP TABLE IF EXISTS `virtual_device_mapping`; +CREATE TABLE `virtual_device_mapping` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `create_by` bigint NULL DEFAULT NULL COMMENT '创建者', + `create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '设备ID', + `tenant_id` bigint NULL DEFAULT NULL, + `virtual_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '虚拟设备ID', + `createDept` bigint NULL DEFAULT NULL, + `deviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + `tenantId` bigint NULL DEFAULT NULL, + `virtualId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/alert/AlertRecord.java b/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/alert/AlertRecord.java index 6a92b7a..36a52ed 100644 --- a/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/alert/AlertRecord.java +++ b/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/alert/AlertRecord.java @@ -79,6 +79,19 @@ public class AlertRecord extends TenantModel implements Owned { */ private Boolean readFlg; private Boolean statusFlg = false; + + + private Integer reasonForRemoval; + + private Integer reasonForRemovalFlag; + + private String site; + private String deviceName; + private String productKey; + private String levelStatus; + private String endTime; + private String beginTime; + private String productName; /* @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") public Date getAlertTime() { return new Date(this.alertTime); diff --git a/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceInfo.java b/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceInfo.java index dbd1385..d32aefc 100644 --- a/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceInfo.java +++ b/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceInfo.java @@ -100,6 +100,7 @@ public class DeviceInfo extends TenantModel implements Owned { private String nodeStatus; private String node; private String nodeDevice; + private String nodes; /** * 关联子用户ID列表 */ diff --git a/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceIssue.java b/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceIssue.java new file mode 100644 index 0000000..2ef0d32 --- /dev/null +++ b/iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceIssue.java @@ -0,0 +1,69 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ + +package cc.iotkit.model.device; + + +import cc.iotkit.model.Id; +import cc.iotkit.model.Owned; +import cc.iotkit.model.TenantModel; +import io.github.linpeilie.annotations.AutoMapper; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Filter; +import org.hibernate.annotations.FilterDef; +import org.hibernate.annotations.GenericGenerator; +import org.hibernate.annotations.ParamDef; + +import javax.persistence.*; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DeviceIssue extends TenantModel implements Owned{ + + + private String id; + + private String productKey; + + private Long tenantId; + + private String fieldName; + private String fieldNameValue; + private String tenantName; + + @Override + public String getUid() { + return null; + } + + @Override + public void setUid(String uid) { + + } +} diff --git a/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IAlertRecordData.java b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IAlertRecordData.java index 6dd308b..a431af4 100644 --- a/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IAlertRecordData.java +++ b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IAlertRecordData.java @@ -36,6 +36,9 @@ public interface IAlertRecordData extends ICommonData { Paging selectAlertConfigPage(PageRequest request); + Paging selectAlertRecordPageExcel(PageRequest request); + + List selectAlertConfigPage(AlertRecordBo request); diff --git a/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java index 5a5df1c..37fc392 100644 --- a/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java +++ b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java @@ -116,7 +116,7 @@ public interface IDeviceInfoData extends IOwnedData { */ Paging findByConditions(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, - int page, int size,Long areaDepeId,String startTime,String endTime); + int page, int size,Long areaDepeId,String startTime,String endTime,String deviceName); Paging findByConditionsExcel(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, int page, int size,Long areaDepeId,String startTime,String endTime); @@ -126,7 +126,7 @@ public interface IDeviceInfoData extends IOwnedData { Paging findByConditions1(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, - int page, int size,Long areaDepeId,String startTime,String endTime); + int page, int size,Long areaDepeId,String startTime,String endTime,String deviceName); /** * 更新设备标签 * @@ -197,6 +197,6 @@ public interface IDeviceInfoData extends IOwnedData { * @return */ List findNeverUsedDevices(); - + Long findNeverUsedDevices(DeviceInfo deviceInfo,Boolean flag); List getDeviceRecord(); } diff --git a/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceIssueData.java b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceIssueData.java new file mode 100644 index 0000000..e97a580 --- /dev/null +++ b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceIssueData.java @@ -0,0 +1,36 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ +package cc.iotkit.data.manager; + +import cc.iotkit.data.ICommonData; +import cc.iotkit.data.IOwnedData; +import cc.iotkit.model.device.DeviceInfo; +import cc.iotkit.model.device.DeviceInstallInfo; +import cc.iotkit.model.device.DeviceIssue; + + +public interface IDeviceIssueData extends ICommonData { + + DeviceIssue findByTenantId(Long tenantId); + +} diff --git a/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java b/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java index b00fbee..fae0b54 100644 --- a/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java +++ b/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java @@ -223,6 +223,10 @@ public class DeviceInfoDataCache implements IDeviceInfoData, SmartInitializingSi public List findNeverUsedDevices() { return deviceInfoData.findNeverUsedDevices(); } + @Override + public Long findNeverUsedDevices(DeviceInfo deviceInfo,Boolean flag) { + return deviceInfoData.findNeverUsedDevices(deviceInfo,flag); + } @Override public List findSubDeviceIds(String parentId) { @@ -231,8 +235,8 @@ public class DeviceInfoDataCache implements IDeviceInfoData, SmartInitializingSi @Override public Paging findByConditions(String name,String uid, String subUid, String productKey, - String groupId, Boolean state, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime) { - return deviceInfoData.findByConditions(name,uid, subUid, productKey, groupId, state, keyword, page, size,deptAreaId,startTime,endTime); + String groupId, Boolean state, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime,String deviceName) { + return deviceInfoData.findByConditions(name,uid, subUid, productKey, groupId, state, keyword, page, size,deptAreaId,startTime,endTime,deviceName); } @Override public Paging findByConditionsExcel(String name,String uid, String subUid, String productKey, @@ -242,8 +246,8 @@ public class DeviceInfoDataCache implements IDeviceInfoData, SmartInitializingSi public Paging findByConditions1(String name,String uid, String subUid, String productKey, - String groupId, Boolean state, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime) { - return deviceInfoData.findByConditions1(name,uid, subUid, productKey, groupId, state, keyword, page, size,deptAreaId,startTime,endTime); + String groupId, Boolean state, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime,String deviceName) { + return deviceInfoData.findByConditions1(name,uid, subUid, productKey, groupId, state, keyword, page, size,deptAreaId,startTime,endTime,deviceName); } @Override public void updateTag(String deviceId, DeviceInfo.Tag tag) { diff --git a/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java b/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java index e12ee00..3b21599 100644 --- a/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java +++ b/iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java @@ -187,8 +187,8 @@ public class DeviceInfoPropertyDataCache implements IDeviceInfoData { } @Override - public Paging findByConditions(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime) { - return deviceInfoData.findByConditions(name,uid, subUid, productKey, groupId, online, keyword, page, size,deptAreaId,startTime,endTime); + public Paging findByConditions(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime,String deviceName) { + return deviceInfoData.findByConditions(name,uid, subUid, productKey, groupId, online, keyword, page, size,deptAreaId,startTime,endTime,deviceName); } @Override public Paging findByConditionsExcel(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime) { @@ -196,8 +196,8 @@ public class DeviceInfoPropertyDataCache implements IDeviceInfoData { } @Override - public Paging findByConditions1(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime) { - return deviceInfoData.findByConditions(name,uid, subUid, productKey, groupId, online, keyword, page, size,deptAreaId,startTime, endTime); + public Paging findByConditions1(String name,String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, int page, int size,Long deptAreaId,String startTime,String endTime,String deviceName) { + return deviceInfoData.findByConditions(name,uid, subUid, productKey, groupId, online, keyword, page, size,deptAreaId,startTime, endTime,deviceName); } @Override public void updateTag(String deviceId, DeviceInfo.Tag tag) { @@ -253,7 +253,10 @@ public class DeviceInfoPropertyDataCache implements IDeviceInfoData { public List findNeverUsedDevices() { return deviceInfoData.findNeverUsedDevices(); } - + @Override + public Long findNeverUsedDevices(DeviceInfo deviceInfo,Boolean flag) { + return deviceInfoData.findNeverUsedDevices(deviceInfo,flag); + } @Override public List findByUid(String uid) { return deviceInfoData.findByUid(uid); diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/DeviceIssueRepository.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/DeviceIssueRepository.java new file mode 100644 index 0000000..4beb64f --- /dev/null +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/DeviceIssueRepository.java @@ -0,0 +1,33 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ + +package cc.iotkit.data.dao; + +import cc.iotkit.data.model.TbDeviceInstallInfo; +import cc.iotkit.data.model.TbDeviceIssue; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; + +public interface DeviceIssueRepository extends JpaRepository, QuerydslPredicateExecutor { + TbDeviceIssue findByTenantId(Long tenantId); +} diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbAlertRecord.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbAlertRecord.java index ef02a66..a644766 100644 --- a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbAlertRecord.java +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbAlertRecord.java @@ -89,6 +89,15 @@ public class TbAlertRecord extends BaseEntity implements TenantAware { private Boolean readFlg; private Long tenantId; - private Long deptAreaId; + @ApiModelProperty(value = "清除原因(0测试”、“1点检”、“2已确认)") + private Integer reasonForRemoval; + @ApiModelProperty(value = "1已清除0未清除") + private Integer reasonForRemovalFlag; + @ApiModelProperty(value = "设备安装地址") + private String site; + private String deviceName; + private String productKey; + private String levelStatus; + } diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbDeviceIssue.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbDeviceIssue.java new file mode 100644 index 0000000..412147d --- /dev/null +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbDeviceIssue.java @@ -0,0 +1,65 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ + +package cc.iotkit.data.model; + +import cc.iotkit.common.tenant.dao.TenantAware; +import cc.iotkit.common.tenant.listener.TenantListener; +import cc.iotkit.model.device.DeviceInstallInfo; +import cc.iotkit.model.device.DeviceIssue; +import io.github.linpeilie.annotations.AutoMapper; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.annotations.Filter; +import org.hibernate.annotations.FilterDef; +import org.hibernate.annotations.GenericGenerator; +import org.hibernate.annotations.ParamDef; + +import javax.persistence.*; +import java.util.Date; + +@Data +@Entity +@Table(name = "device_issue") +@ApiModel(value = "设备下发权限") +@AutoMapper(target = DeviceIssue.class) +@FilterDef(name = "tenantFilter", parameters = {@ParamDef(name = "tenantId", type = "long")}) +@Filter(name = "tenantFilter", condition = "tenant_id = :tenantId") +@EntityListeners(TenantListener.class) +public class TbDeviceIssue extends BaseEntity implements TenantAware { + + @Id + @GeneratedValue(generator = "SnowflakeIdGenerator") + @GenericGenerator(name = "SnowflakeIdGenerator", strategy = "cc.iotkit.data.config.id.SnowflakeIdGenerator") + private String id; + @ApiModelProperty(value = "产品key") + private String productKey; + @ApiModelProperty(value = "字段标识") + private String fieldName; + @ApiModelProperty(value = "租户编号") + private Long tenantId; + + private String fieldNameValue; + +} diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/AlertRecordDataImpl.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/AlertRecordDataImpl.java index 2be16b6..88f5077 100644 --- a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/AlertRecordDataImpl.java +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/AlertRecordDataImpl.java @@ -25,6 +25,7 @@ package cc.iotkit.data.service; import cc.iotkit.common.api.PageRequest; import cc.iotkit.common.api.Paging; +import cc.iotkit.common.enums.UserType; import cc.iotkit.common.satoken.utils.AuthUtil; import cc.iotkit.common.satoken.utils.LoginHelper; import cc.iotkit.common.tenant.helper.TenantHelper; @@ -33,15 +34,19 @@ import cc.iotkit.common.utils.StringUtils; import cc.iotkit.data.dao.AlertRecordRepository; import cc.iotkit.data.dao.IJPACommData; import cc.iotkit.data.manager.IAlertRecordData; +import cc.iotkit.data.manager.IProductData; import cc.iotkit.data.model.QTbAlertRecord; import cc.iotkit.data.model.TbAlertRecord; +import cc.iotkit.data.system.ISysUserData; import cc.iotkit.data.util.PageBuilder; import cc.iotkit.data.util.PredicateBuilder; import cc.iotkit.model.alert.AlertConfig; import cc.iotkit.model.alert.AlertRecord; import cc.iotkit.model.alert.AlertRecordBo; +import cc.iotkit.model.product.Product; import cc.iotkit.model.stats.AlertStatDTO; import cc.iotkit.model.system.SysLoginInfo; +import cc.iotkit.model.system.SysUser; import cn.hutool.core.date.DateTime; import cn.hutool.core.util.ObjectUtil; import com.querydsl.core.QueryResults; @@ -53,6 +58,7 @@ import com.querydsl.jpa.impl.JPAQuery; import com.querydsl.jpa.impl.JPAQueryFactory; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Primary; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -64,6 +70,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; @@ -71,6 +78,7 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import static cc.iotkit.data.model.QTbAlertRecord.tbAlertRecord; +import static cc.iotkit.data.model.QTbDeviceInfo.tbDeviceInfo; @Primary @Service @@ -81,12 +89,15 @@ public class AlertRecordDataImpl implements IAlertRecordData, IJPACommData tbAlertRecord.name.like("%" + data.getName() + "%")) + .and(StringUtils.isNotBlank(data.getDeviceName()), () -> tbAlertRecord.deviceName.like("%" + data.getDeviceName() + "%")) + .and(ObjectUtils.isNotEmpty(data.getReasonForRemoval()), () -> tbAlertRecord.reasonForRemoval.eq(data.getReasonForRemoval())) + .and(ObjectUtils.isNotEmpty(data.getDeptAreaId()), () -> tbAlertRecord.deptAreaId.eq(data.getDeptAreaId())) + .and(ObjectUtils.isNotEmpty(data.getLevelStatus()), () -> tbAlertRecord.levelStatus.like("%" + data.getLevelStatus() + "%")) + .and(ObjectUtils.isNotEmpty(data.getProductKey()), () -> tbAlertRecord.productKey.eq(data.getProductKey())) + .and(ObjectUtils.isNotEmpty(data.getReasonForRemovalFlag()), () -> tbAlertRecord.reasonForRemovalFlag.eq(data.getReasonForRemovalFlag())) .and(StringUtils.isNotBlank(data.getLevel()), () -> tbAlertRecord.level.eq(data.getLevel())) .and(StringUtils.isNotBlank(data.getUid()), () -> tbAlertRecord.uid.eq(data.getUid())) .and(ObjectUtil.isNotEmpty(TenantHelper.getTenantId()), () -> tbAlertRecord.tenantId.eq(TenantHelper.getTenantId())) @@ -121,6 +147,12 @@ public class AlertRecordDataImpl implements IAlertRecordData, IJPACommData tbAlertRecord.name.like("%" + data.getName() + "%")) + .and(StringUtils.isNotBlank(data.getDeviceName()), () -> tbAlertRecord.deviceName.like("%" + data.getDeviceName() + "%")) + .and(ObjectUtils.isNotEmpty(data.getReasonForRemoval()), () -> tbAlertRecord.reasonForRemoval.eq(data.getReasonForRemoval())) + .and(ObjectUtils.isNotEmpty(data.getLevelStatus()), () -> tbAlertRecord.levelStatus.like("%" + data.getLevelStatus() + "%")) + .and(ObjectUtils.isNotEmpty(data.getProductKey()), () -> tbAlertRecord.productKey.eq(data.getProductKey())) + .and(ObjectUtils.isNotEmpty(data.getDeptAreaId()), () -> tbAlertRecord.deptAreaId.eq(data.getDeptAreaId())) + .and(ObjectUtils.isNotEmpty(data.getReasonForRemovalFlag()), () -> tbAlertRecord.reasonForRemovalFlag.eq(data.getReasonForRemovalFlag())) .and(StringUtils.isNotBlank(data.getLevel()), () -> tbAlertRecord.level.eq(data.getLevel())) .and(StringUtils.isNotBlank(data.getUid()), () -> tbAlertRecord.uid.eq(data.getUid())) .and(ObjectUtil.isNotEmpty(TenantHelper.getTenantId()), () -> tbAlertRecord.tenantId.eq(TenantHelper.getTenantId())) @@ -129,6 +161,12 @@ public class AlertRecordDataImpl implements IAlertRecordData, IJPACommData tbAlertRecord.name.like("%" + data.getName() + "%")) + .and(StringUtils.isNotBlank(data.getDeviceName()), () -> tbAlertRecord.deviceName.like("%" + data.getDeviceName() + "%")) + .and(ObjectUtils.isNotEmpty(data.getReasonForRemoval()), () -> tbAlertRecord.reasonForRemoval.eq(data.getReasonForRemoval())) + .and(ObjectUtils.isNotEmpty(data.getLevelStatus()), () -> tbAlertRecord.levelStatus.like("%" + data.getLevelStatus() + "%")) + .and(ObjectUtils.isNotEmpty(data.getProductKey()), () -> tbAlertRecord.productKey.eq(data.getProductKey())) + .and(ObjectUtils.isNotEmpty(data.getDeptAreaId()), () -> tbAlertRecord.deptAreaId.eq(data.getDeptAreaId())) + .and(ObjectUtils.isNotEmpty(data.getReasonForRemovalFlag()), () -> tbAlertRecord.reasonForRemovalFlag.eq(data.getReasonForRemovalFlag())) .and(StringUtils.isNotBlank(data.getLevel()), () -> tbAlertRecord.level.eq(data.getLevel())) .and(StringUtils.isNotBlank(data.getUid()), () -> tbAlertRecord.uid.eq(data.getUid())) // .and(ObjectUtil.isNotEmpty(TenantHelper.getTenantId()), () -> tbAlertRecord.tenantId.eq(TenantHelper.getTenantId())) @@ -168,15 +206,40 @@ public class AlertRecordDataImpl implements IAlertRecordData, IJPACommData result = new Paging<>(results.getTotal(), results.getResults()).to(AlertRecord.class); + for (AlertRecord row : result.getRows()) { + if(ObjectUtil.isNotEmpty(row.getProductKey())) { + Product product = productData.findByProductKey(row.getProductKey()); + if(ObjectUtil.isNotEmpty(product)) { + row.setProductName(product.getName()); + } + } + } /* // 将alertTime乘以1000 List convertedResults = results.getResults().stream() .peek(record -> record.setAlertTime(record.getAlertTime() * 1000)) .collect(Collectors.toList());*/ - return new Paging<>(results.getTotal(), results.getResults()).to(AlertRecord.class); + return result; } + @Override + public Paging selectAlertRecordPageExcel(PageRequest request) { + + QueryResults results = jpaQueryFactory.selectFrom(tbAlertRecord) + .where(genPredicate(request.getData())) + .orderBy(tbAlertRecord.id.desc()).fetchResults(); + // .limit(request.getPageSize()) + // .offset(request.getOffset()) + /* // 将alertTime乘以1000 + List convertedResults = results.getResults().stream() + .peek(record -> record.setAlertTime(record.getAlertTime() * 1000)) + .collect(Collectors.toList());*/ + + return new Paging<>(results.getTotal(), results.getResults()).to(AlertRecord.class); + + } private String extractByPattern(String text, String regex) { Pattern pattern = Pattern.compile(regex); diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java index 593c26d..39527d2 100644 --- a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java @@ -139,15 +139,15 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData areaIds = null; + List areaIds = new ArrayList<>(); List results = null; if (ObjectUtil.isNotNull(deptAreaId)) { // if (Objects.nonNull(user) && Objects.nonNull(user.getDeptAreaId())) { - Long areaId = deptAreaId; + /* Long areaId = deptAreaId; List depts = sysDeptData.findByDeptId(areaId); - areaIds = StreamUtils.toList(depts, SysDept::getId); - areaIds.add(areaId); + areaIds = StreamUtils.toList(depts, SysDept::getId);*/ + areaIds.add(deptAreaId); /* if (ObjectUtil.isNotEmpty(areaIds)) { query.where(tbDeviceInfo.deptAreaId.in(areaIds)); }*/ @@ -159,8 +159,8 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData depts = sysDeptData.findByDeptId(areaId); - areaIds = StreamUtils.toList(depts, SysDept::getId); + /* List depts = sysDeptData.findByDeptId(areaId); + areaIds = StreamUtils.toList(depts, SysDept::getId);*/ areaIds.add(areaId); } /* if (ObjectUtil.isNotEmpty(areaIds)) { @@ -438,6 +438,26 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData query = jpaQueryFactory.selectFrom(tbDeviceInfo); + if( flag){ + query.where(tbDeviceInfo.state.eq(deviceInfo.getState().isOnline() ? "online" : "offline")); + }else { + query.where(tbDeviceInfo.onlineTime.isNull()); + } + if(ObjectUtil.isNotNull(TenantHelper.getTenantId())) { + if (!LoginHelper.isSuperAdmin()) { + + query.where(tbDeviceInfo.tenantId.eq(TenantHelper.getTenantId())); + } else if (LoginHelper.isSuperAdmin() && TenantHelper.getTenantId() != 0) { + query.where(tbDeviceInfo.tenantId.eq(TenantHelper.getTenantId())); + } + } + Long count = query.fetchCount(); + return count; + } + @Override public List getDeviceRecord() { QTbDeviceInfo device = tbDeviceInfo; QTbProduct product = tbProduct; @@ -502,8 +522,15 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData areaIds; + // List areaIds; // if (Objects.nonNull(user) && Objects.nonNull(user.getDeptAreaId())) { - Long areaId = deptAreaId; +/* Long areaId = deptAreaId; List depts = sysDeptData.findByDeptId(areaId); areaIds = StreamUtils.toList(depts, SysDept::getId); areaIds.add(areaId); - if (ObjectUtil.isNotEmpty(areaIds)) { - query.where(tbDeviceInfo.deptAreaId.in(areaIds)); + if (ObjectUtil.isNotEmpty(areaIds)) {*/ + if(deptAreaId != 0) { + query.where(tbDeviceInfo.deptAreaId.in(deptAreaId)); } + // } }else{ if(!LoginHelper.isSuperAdmin()) { if(ObjectUtil.isNotEmpty(LoginHelper.getUserId())) { @@ -536,13 +565,13 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData areaIds; // if (Objects.nonNull(user) && Objects.nonNull(user.getDeptAreaId())) { - Long areaId = user.getDeptAreaId(); + /* Long areaId = user.getDeptAreaId(); List depts = sysDeptData.findByDeptId(areaId); areaIds = StreamUtils.toList(depts, SysDept::getId); areaIds.add(areaId); - if (ObjectUtil.isNotEmpty(areaIds)) { - query.where(tbDeviceInfo.deptAreaId.in(areaIds)); - } + if (ObjectUtil.isNotEmpty(areaIds)) {*/ + query.where(tbDeviceInfo.deptAreaId.in(user.getDeptAreaId())); + // } } else { if(ObjectUtil.isNotEmpty(LoginHelper.getUserType()) && !LoginHelper.getUserType().equals(UserType.APP_USER)) { //没有绑定区域查不到设备 @@ -552,6 +581,8 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData findByConditions(String name, String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, - int page, int size, Long deptAreaId,String startTime,String endTime) { + int page, int size, Long deptAreaId,String startTime,String endTime,String deviceName) { JPAQuery query = jpaQueryFactory.selectFrom(tbDeviceInfo); // 根据groupId, 如果groupId存在,则关联查询TbDeviceGroupMapping, 根据groupId,查询对应的devices if (StringUtils.isNotBlank(groupId)) { + if(!groupId.equals("0")){ query.join(tbDeviceGroupMapping).on(tbDeviceGroupMapping.deviceId.eq(tbDeviceInfo.deviceId)); - query.where(tbDeviceGroupMapping.groupId.eq(groupId)); + // query.where(tbDeviceGroupMapping.groupId.eq(groupId)); + query.where(tbDeviceGroupMapping.groupId.eq(groupId)); + } + }else{ + query.join(tbDeviceGroupMapping).on(tbDeviceGroupMapping.deviceId.eq(tbDeviceInfo.deviceId)); + query.where(tbDeviceGroupMapping.groupId.isNull()); + } @@ -617,20 +655,26 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData areaIds; + /* List areaIds; // if (Objects.nonNull(user) && Objects.nonNull(user.getDeptAreaId())) { Long areaId = deptAreaId; List depts = sysDeptData.findByDeptId(areaId); areaIds = StreamUtils.toList(depts, SysDept::getId); areaIds.add(areaId); - if (ObjectUtil.isNotEmpty(areaIds)) { - query.where(tbDeviceInfo.deptAreaId.in(areaIds)); + if (ObjectUtil.isNotEmpty(areaIds)) {*/ + if(deptAreaId != 0) { + query.where(tbDeviceInfo.deptAreaId.in(deptAreaId)); } + // query.where(tbDeviceInfo.deptAreaId.in(deptAreaId)); + // } }else{ if(!LoginHelper.isSuperAdmin()) { if(ObjectUtil.isNotEmpty(LoginHelper.getUserId())) { @@ -638,15 +682,15 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData areaIds; + /* List areaIds; // if (Objects.nonNull(user) && Objects.nonNull(user.getDeptAreaId())) { Long areaId = user.getDeptAreaId(); List depts = sysDeptData.findByDeptId(areaId); areaIds = StreamUtils.toList(depts, SysDept::getId); areaIds.add(areaId); - if (ObjectUtil.isNotEmpty(areaIds)) { - query.where(tbDeviceInfo.deptAreaId.in(areaIds)); - } + if (ObjectUtil.isNotEmpty(areaIds)) {*/ + query.where(tbDeviceInfo.deptAreaId.in(user.getDeptAreaId())); + // } } else { if(ObjectUtil.isNotEmpty(LoginHelper.getUserType()) && !LoginHelper.getUserType().equals(UserType.APP_USER)) { //没有绑定区域查不到设备 @@ -707,13 +751,20 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData findByConditions1(String name, String uid, String subUid, String productKey, String groupId, Boolean online, String keyword, - int page, int size, Long deptAreaId,String startTime,String endTime) { + int page, int size, Long deptAreaId,String startTime,String endTime,String deviceName) { JPAQuery query = jpaQueryFactory.selectFrom(tbDeviceInfo); // 根据groupId, 如果groupId存在,则关联查询TbDeviceGroupMapping, 根据groupId,查询对应的devices if (StringUtils.isNotBlank(groupId)) { + if(!groupId.equals("0")) { query.join(tbDeviceGroupMapping).on(tbDeviceGroupMapping.deviceId.eq(tbDeviceInfo.deviceId)); - query.where(tbDeviceGroupMapping.groupId.eq(groupId)); + + query.where(tbDeviceGroupMapping.groupId.eq(groupId)); + } + }else{ + query.join(tbDeviceGroupMapping).on(tbDeviceGroupMapping.deviceId.eq(tbDeviceInfo.deviceId)); + query.where(tbDeviceGroupMapping.groupId.isNull()); + } @@ -723,12 +774,18 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData depts = sysDeptData.findByDeptId(areaId); - areaIds = StreamUtils.toList(depts, SysDept::getId); + /* List depts = sysDeptData.findByDeptId(areaId); + areaIds = StreamUtils.toList(depts, SysDept::getId);*/ areaIds.add(areaId); /* if (ObjectUtil.isNotEmpty(areaIds)) { query.where(tbDeviceInfo.deptAreaId.in(areaIds)); @@ -985,8 +1043,8 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData depts = sysDeptData.findByDeptId(sysUser.getDeptAreaId()); - areaIds = StreamUtils.toList(depts, SysDept::getId); + /* List depts = sysDeptData.findByDeptId(sysUser.getDeptAreaId()); + areaIds = StreamUtils.toList(depts, SysDept::getId);*/ areaIds.add(sysUser.getDeptAreaId()); } } @@ -995,6 +1053,7 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData depts = sysDeptData.findByTenantId(TenantHelper.getTenantId()); areaIds = StreamUtils.toList(depts, SysDept::getId); + //areaIds.add(sysUser.getDeptAreaId()); } diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceIssueDataImpl.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceIssueDataImpl.java new file mode 100644 index 0000000..6faaed9 --- /dev/null +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceIssueDataImpl.java @@ -0,0 +1,74 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ + +package cc.iotkit.data.service; + +import cc.iotkit.common.utils.MapstructUtils; +import cc.iotkit.data.dao.DeviceInstallInfoRepository; +import cc.iotkit.data.dao.DeviceIssueRepository; +import cc.iotkit.data.dao.IJPACommData; +import cc.iotkit.data.manager.IDeviceInstallInfoData; +import cc.iotkit.data.manager.IDeviceIssueData; +import cc.iotkit.data.model.TbDeviceInstallInfo; +import cc.iotkit.data.model.TbDeviceIssue; +import cc.iotkit.model.device.DeviceInfo; +import cc.iotkit.model.device.DeviceInstallInfo; +import cc.iotkit.model.device.DeviceIssue; +import com.querydsl.jpa.impl.JPAQueryFactory; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Service; + +@Primary +@Service +@RequiredArgsConstructor +public class DeviceIssueDataImpl implements IDeviceIssueData, IJPACommData { + + @Autowired + private DeviceIssueRepository homeRepository; + + private final JPAQueryFactory jpaQueryFactory; + + @Override + public JpaRepository getBaseRepository() { + return homeRepository; + } + + @Override + public Class getJpaRepositoryClass() { + return TbDeviceIssue.class; + } + + @Override + public Class getTClass() { + return DeviceIssue.class; + } + + + @Override + public DeviceIssue findByTenantId(Long tenantId) { + return MapstructUtils.convert(homeRepository.findByTenantId(tenantId), DeviceIssue.class); + } +} diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysDeptDataImpl.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysDeptDataImpl.java index 51f4ae8..e5076f4 100644 --- a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysDeptDataImpl.java +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysDeptDataImpl.java @@ -113,24 +113,26 @@ public class SysDeptDataImpl implements ISysDeptData, IJPACommData tbSysDept.tenantId.eq(dept.getTenantId())); - Optional tbSysUser = sysUserData.findById(LoginHelper.getUserId()); - List areaIds; - // if (Objects.nonNull(user) && Objects.nonNull(user.getDeptAreaId())) { - - if (ObjectUtil.isNotEmpty(tbSysUser) && ObjectUtil.isNotEmpty(LoginHelper.getUserType()) && !LoginHelper.getUserType().equals(UserType.APP_USER)) { - if (ObjectUtil.isNotNull(dept.getAreaType()) && dept.getAreaType() == 1) { - //查询区域 - Long areaId = tbSysUser.get().getDeptAreaId(); - List depts = this.findByDeptId(areaId); - List filteredIds = depts.stream() - .filter(dept1 -> dept1.getAreaType() == 1) - .map(SysDept::getId) - .collect(Collectors.toList()); - filteredIds.add(areaId); - - //areaIds = StreamUtils.toList(depts, SysDept::getId); - // areaIds.add(areaId); - predicateBuilder.and(ObjectUtil.isNotNull(tbSysUser.get().getDeptAreaId()), () -> tbSysDept.id.in(filteredIds)); + if (ObjectUtil.isNotEmpty(LoginHelper.getUserId())) { + Optional tbSysUser = sysUserData.findById(LoginHelper.getUserId()); + List areaIds; + // if (Objects.nonNull(user) && Objects.nonNull(user.getDeptAreaId())) { + + if (ObjectUtil.isNotEmpty(tbSysUser) && ObjectUtil.isNotEmpty(LoginHelper.getUserType()) && !LoginHelper.getUserType().equals(UserType.APP_USER)) { + if (ObjectUtil.isNotNull(dept.getAreaType()) && dept.getAreaType() == 1) { + //查询区域 + Long areaId = tbSysUser.get().getDeptAreaId(); + List depts = this.findByDeptId(areaId); + List filteredIds = depts.stream() + .filter(dept1 -> dept1.getAreaType() == 1) + .map(SysDept::getId) + .collect(Collectors.toList()); + filteredIds.add(areaId); + + //areaIds = StreamUtils.toList(depts, SysDept::getId); + // areaIds.add(areaId); + predicateBuilder.and(ObjectUtil.isNotNull(tbSysUser.get().getDeptAreaId()), () -> tbSysDept.id.in(filteredIds)); + } } else { /* Long areaId = tbSysUser.get().getDeptId(); List depts = iSysDeptData.findByDeptId(areaId); diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/config/PDFGenerator.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/config/PDFGenerator.java index e2ac505..0c0f282 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/config/PDFGenerator.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/config/PDFGenerator.java @@ -35,9 +35,9 @@ public class PDFGenerator { public static void generateInstallationPDF(DeviceInstallInfo entity, OutputStream outputStream) throws IOException { try (PDDocument document = new PDDocument()) { // 加载字体(需替换实际路径) - // PDType0Font font = PDType0Font.load(document, new File("D:\\NotoSansCJK-Regular.ttf")); + //PDType0Font font = PDType0Font.load(document, new File("D:\\NotoSansCJK-Regular.ttf")); //PDType0Font font = PDType0Font.load(document, new File("/ttf/simsun.ttf")); - PDType0Font font = PDType0Font.load(document, new File("/ttf/NotoSansCJK-Regular.ttf")); + PDType0Font font = PDType0Font.load(document, new File("/ttf/NotoSansCJK-Regular.ttf")); // 初始化第一页 PDPage currentPage = new PDPage(PDRectangle.A4); document.addPage(currentPage); @@ -59,6 +59,7 @@ public class PDFGenerator { {"申请人班组", entity.getProposerTeam()}, {"小区名字", entity.getCommunityName()}, {"用户姓名", entity.getUserName()}, + // {"用户姓名", entity.getUserName()+"-" + entity.getCommunityName()+entity.getBuildingUnit()+entity.getRoomNo()}, {"电话", entity.getUserIpone()}, {"楼栋单元号", entity.getBuildingUnit()}, {"房间号", entity.getRoomNo()}, diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java index e1055a4..ec91bb1 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java @@ -25,14 +25,24 @@ package cc.iotkit.manager.controller; import cc.iotkit.common.api.PageRequest; import cc.iotkit.common.api.Paging; import cc.iotkit.common.api.Request; +import cc.iotkit.common.excel.utils.ExcelUtil; import cc.iotkit.common.exception.BizException; +import cc.iotkit.common.log.annotation.Log; +import cc.iotkit.common.log.enums.BusinessType; import cc.iotkit.common.satoken.utils.AuthUtil; import cc.iotkit.common.satoken.utils.LoginHelper; +import cc.iotkit.common.tenant.helper.TenantHelper; +import cc.iotkit.common.utils.MapstructUtils; import cc.iotkit.manager.dto.bo.device.DeviceInfoBo; +import cc.iotkit.manager.dto.bo.device.DeviceQueryBo; +import cc.iotkit.manager.dto.vo.deviceinfo.AlertRecordExpordVo; +import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoExpordVo; +import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo; import cc.iotkit.manager.service.AlertService; import cc.iotkit.model.alert.AlertConfig; import cc.iotkit.model.alert.AlertRecord; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -44,6 +54,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -112,7 +123,27 @@ public class AlertController { request.getData().setStatusFlg(true); return alertService.selectAlertRecordPage(request); } - @ApiOperation("查询告警消息已读未读") + @ApiOperation("导出告警消息列表") + @Log(title = "告警消息", businessType = BusinessType.EXPORT) + // @SaCheckPermission("system:user:export")@RequestBody Request + @PostMapping("/export") + public void export(@Validated @RequestBody PageRequest deviceQueryBo, + HttpServletResponse response) { + if(ObjectUtil.isEmpty(deviceQueryBo)){ + if(LoginHelper.isSuperAdmin() && TenantHelper.getTenantId() == 0){ + deviceQueryBo.getData().setTenantId(null); + }else{ + deviceQueryBo.getData().setTenantId(TenantHelper.getTenantId()); + } + } + deviceQueryBo.getData().setStatusFlg(true); + Paging list = alertService.selectAlertRecordPageExcel(deviceQueryBo); + // List list = deviceServiceImpl.getDevicessExcel(deviceQueryBo); + List listVo = MapstructUtils.convert(list.getRows(), AlertRecordExpordVo.class); + ExcelUtil.exportExcel(listVo, "告警信息数据", AlertRecordExpordVo.class, response); + } + + @ApiOperation("添加修改报警消息") // @SaCheckPermission("iot:alert:query") @PostMapping("/saveAlertRecord") public void saveAlertRecord(@RequestBody @Validated Request bo) { diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java index 7babd18..9528b7c 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java @@ -31,6 +31,7 @@ import cc.iotkit.common.excel.core.CellMergeStrategy; import cc.iotkit.common.excel.utils.ExcelUtil; import cc.iotkit.common.log.annotation.Log; import cc.iotkit.common.log.enums.BusinessType; +import cc.iotkit.common.redis.utils.RedisUtils; import cc.iotkit.common.satoken.utils.LoginHelper; import cc.iotkit.common.tenant.helper.TenantHelper; import cc.iotkit.common.thing.ThingModelMessage; @@ -57,7 +58,11 @@ import cc.iotkit.model.device.DeviceConfig; import cc.iotkit.model.device.DeviceGroup; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.model.device.message.DeviceProperty; +import cc.iotkit.model.stats.SysDeptDto; +import cc.iotkit.plugin.main.ThingServiceImpl; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.ExcelWriter; @@ -65,6 +70,8 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.poi.sl.usermodel.Sheet; +import org.redisson.api.RAtomicLong; +import org.redisson.api.RMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -72,9 +79,12 @@ import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import static cc.iotkit.common.redis.utils.RedisUtils.setCacheMapValue; import static cc.iotkit.common.web.core.BaseController.fail; @Api(tags = {"设备"}) @@ -91,6 +101,8 @@ public class DeviceController { private DeviceCtrlService deviceCtrlService; @Autowired private IDeviceManagerService deviceServiceImpl; + @Autowired + private ThingServiceImpl thingService; @ApiOperation(value = "服务调用", notes = "服务调用", httpMethod = "POST") @@ -115,7 +127,7 @@ public class DeviceController { } @ApiOperation(value = "设备列表", notes = "设备列表", httpMethod = "POST") - @SaCheckPermission("iot:device:query") + //@SaCheckPermission("iot:device:query") @PostMapping("/list") public Paging getDevices(@Validated @RequestBody PageRequest pageRequest) { return deviceServiceImpl.getDevices(pageRequest); @@ -132,7 +144,19 @@ public class DeviceController { public boolean createDevice(@RequestBody @Validated Request bo) { return deviceServiceImpl.addDevice(bo.getData()); } - + @ApiOperation(value = "联动控制箱下发指令") + // @SaCheckPermission("iot:device:add") + @PostMapping("/deviceLinkageControlSend") + public boolean deviceLinkageControlSend(@RequestBody @Validated Request bo) { + boolean result = false; + if(bo.getData()!=null && ObjectUtil.isNotNull(bo.getData().getNodes())){ + for (String node:bo.getData().getNodes().split(",")) { + result = thingService.deviceLinkageControlSend(bo.getData(), node); + } + } + return result; + // return deviceServiceImpl.addDevice(bo.getData()); + } @ApiOperation(value = "保存设备") @SaCheckPermission("iot:device:edit") @PostMapping("/save") @@ -148,6 +172,8 @@ public class DeviceController { return deviceServiceImpl.selectChildrenPageList(deviceId); } + + @ApiOperation("获取网关设备") @SaCheckPermission("iot:device:query") @PostMapping("/getParentDevices") @@ -421,6 +447,55 @@ public class DeviceController { String deviceId = bo.getData(); return new InvokeResult(deviceCtrlService.sendConfig(deviceId)); } + /** + * 设备配置下发 + */ + @ApiOperation(value = "设备配置批量下发") + @SaCheckPermission("iot:device:ctrl") + @PostMapping("/config/sends") + public Integer sendConfig(@Validated @RequestBody PageRequest deviceQueryBo) { + ExecutorService executor = Executors.newFixedThreadPool(50); + if(ObjectUtil.isNull(deviceQueryBo.getData().getConfig())){ + fail("参数错误"); + } + List list = deviceServiceImpl.getDevicessExcel(deviceQueryBo); + // String ALERT_MAP_KEY = "device:config:sends:" + TenantHelper.getTenantId(); + String ALERT_MAP_KEY = "device:config:sends"; + RMap alertMap = RedisUtils.getClient().getMap(ALERT_MAP_KEY); + alertMap.expire(5, TimeUnit.MINUTES); + list.forEach(device -> { + executor.submit(() -> { + DeviceConfigAddBo deviceConfigAddBo = new DeviceConfigAddBo(); + deviceConfigAddBo.setConfig(deviceQueryBo.getData().getConfig()); + deviceConfigAddBo.setDeviceId(device.getDeviceId()); + DeviceConfig data = deviceConfigAddBo.to(DeviceConfig.class); + + deviceServiceImpl.saveConfig(data); + // 记录状态2已下发,0成功1失败 + setCacheMapValue(ALERT_MAP_KEY, device.getDeviceName(), 2); + // alertMap.put(device.getDeviceName(), 0); + // expire(ALERT_MAP_KEY, 172800); + // RMap alertMap = RedisUtils.getClient().getMap(ALERT_MAP_KEY); + deviceCtrlService.sendConfig(device,data); + }); + }); + return list.size(); + } + + @ApiOperation(value = "设备配置批量下发数据获取") + @PostMapping("/config/sendsReult") + public RMap getConfigSendsReult() { + String ALERT_MAP_KEY = "device:config:sends"; + RMap alertMap = RedisUtils.getClient().getMap(ALERT_MAP_KEY); + String counterKey = "device:alert:modify_count"; + RAtomicLong counter = RedisUtils.getClient().getAtomicLong(counterKey); + long currentCount = counter.get(); + if (currentCount >= alertMap.size()) { + alertMap.clear(); + counter.delete(); + } + return alertMap; + } @ApiOperation(value = "配置获取", notes = "属性获取", httpMethod = "POST") //@SaCheckPermission("iot:device:ctrl") @PostMapping("/service/config/get") @@ -431,4 +506,6 @@ public class DeviceController { } return new InvokeResult(deviceCtrlService.getConfig(deviceId)); } + + } diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceIssueController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceIssueController.java new file mode 100644 index 0000000..b3685ed --- /dev/null +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceIssueController.java @@ -0,0 +1,185 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ +package cc.iotkit.manager.controller; + +import cc.iotkit.common.api.PageRequest; +import cc.iotkit.common.api.Paging; +import cc.iotkit.common.api.Request; +import cc.iotkit.common.enums.ErrCode; +import cc.iotkit.common.excel.utils.ExcelUtil; +import cc.iotkit.common.exception.BizException; +import cc.iotkit.common.log.annotation.Log; +import cc.iotkit.common.log.enums.BusinessType; +import cc.iotkit.common.satoken.utils.LoginHelper; +import cc.iotkit.common.tenant.helper.TenantHelper; +import cc.iotkit.common.utils.DeviceUtil; +import cc.iotkit.common.utils.MapstructUtils; +import cc.iotkit.data.manager.IDeviceInstallInfoData; +import cc.iotkit.data.manager.IDeviceIssueData; +import cc.iotkit.manager.config.PDFGenerator; +import cc.iotkit.manager.dto.bo.device.DeviceInstallInfoQueryBo; +import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInstallInfoExpordVo; +import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInstallInfoVo; +import cc.iotkit.manager.service.IDeviceInstallInfoService; +import cc.iotkit.manager.service.IDeviceIssueService; +import cc.iotkit.model.device.DeviceInstallInfo; +import cc.iotkit.model.device.DeviceIssue; +import cc.iotkit.model.device.InstallationRecord; +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import com.itextpdf.io.font.PdfEncodings; +import com.itextpdf.kernel.colors.DeviceRgb; +import com.itextpdf.kernel.font.PdfFont; +import com.itextpdf.kernel.font.PdfFontFactory; +import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfWriter; +import com.itextpdf.layout.Document; +import com.itextpdf.layout.element.AreaBreak; +import com.itextpdf.layout.element.Cell; +import com.itextpdf.layout.element.Paragraph; +import com.itextpdf.layout.element.Table; +import com.itextpdf.layout.properties.AreaBreakType; +import com.itextpdf.layout.properties.TextAlignment; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URISyntaxException; +import java.util.List; + + +@Api(tags = {"设备下发权限信息"}) +@Slf4j +@RestController +@RequestMapping("/deviceIssue") +public class DeviceIssueController { + + @Autowired + private IDeviceIssueService deviceServiceImpl; + @Autowired + private IDeviceIssueData iDeviceInstallInfoData; + + @ApiOperation(value = "下发权限列表", notes = "设备列表", httpMethod = "POST") + //@SaCheckPermission("iot:device:query") + @PostMapping("/page") + public Paging getDevices(@Validated @RequestBody PageRequest pageRequest) { + + return deviceServiceImpl.getPage(pageRequest); + } + + @PostMapping("/add") + @SaCheckPermission("device:issue:add") + public void addClientUser(@RequestBody Request deviceInstallInfo) throws Exception { + /* user.getData().setType(UserInfo.USER_TYPE_CLIENT); + user.getData().setRoles(Collections.singletonList(Constants.ROLE_CLIENT)); + user.getData().setSecret(null);*/ + TenantHelper.enableIgnore(); + if (ObjectUtil.isNull(deviceInstallInfo.getData()) || ObjectUtil.isNull(deviceInstallInfo.getData().getFieldName())) { + throw new BizException(ErrCode.PARAMS_EXCEPTION); + } + /* DeviceInstallInfo deviceRepetition = iDeviceInstallInfoData.findByDeviceNameAndUid(deviceInstallInfo.getData().getDeviceName(), deviceInstallInfo.getData().getUid()); + if (deviceRepetition != null) { + throw new BizException(ErrCode.MODEL_DEVICE_ALREADY); + }*/ + if (LoginHelper.isSuperAdmin() && TenantHelper.getTenantId() != 0) { + deviceInstallInfo.getData().setTenantId(TenantHelper.getTenantId()); + // query.where(tbDeviceInstallInfo.tenantId.eq(TenantHelper.getTenantId())); + } + deviceInstallInfo.getData().setId(DeviceUtil.newDeviceId("0")); +/* if(!LoginHelper.isSuperAdmin() && ObjectUtil.isNotNull(pageReqVO.getData().getTenantId())){ + query.where(tbDeviceInstallInfo.tenantId.eq(pageReqVO.getData().getTenantId())); + }*/ + DeviceIssue deviceIssue = iDeviceInstallInfoData.findByTenantId(deviceInstallInfo.getData().getTenantId()); + if(ObjectUtil.isNotEmpty(deviceIssue)){ + throw new BizException("租户权限已存在"); + } + iDeviceInstallInfoData.save(deviceInstallInfo.getData()); + + /* if(LoginHelper.isSuperAdmin() && TenantHelper.getTenantId() != 0) { + userInfoData.save(user.getData()); + }else{ + user.getData().setTenantId(null); + userInfoData.save(user.getData()); + }*/ + } + + @PostMapping("/edit") + @SaCheckPermission("device:issue:edit") + public void editClientUser(@RequestBody Request deviceInstallInfo) throws Exception { + + TenantHelper.enableIgnore(); + if (ObjectUtil.isNull(deviceInstallInfo.getData()) || ObjectUtil.isNull(deviceInstallInfo.getData().getFieldName()) || ObjectUtil.isNull(deviceInstallInfo.getData().getId())) { + throw new BizException(ErrCode.PARAMS_EXCEPTION); + } + if (LoginHelper.isSuperAdmin() && TenantHelper.getTenantId() != 0) { + deviceInstallInfo.getData().setTenantId(TenantHelper.getTenantId()); + // query.where(tbDeviceInstallInfo.tenantId.eq(TenantHelper.getTenantId())); + } + DeviceIssue deviceIssue = iDeviceInstallInfoData.findById(deviceInstallInfo.getData().getId()); + // DeviceIssue deviceIssue = iDeviceInstallInfoData.findByTenantId(deviceInstallInfo.getData().getTenantId()); + + if(ObjectUtil.isNotEmpty(deviceIssue) && !deviceIssue.getTenantId().equals(deviceInstallInfo.getData().getTenantId())){ + DeviceIssue deviceIssue1 = iDeviceInstallInfoData.findByTenantId(deviceInstallInfo.getData().getTenantId()); + if(ObjectUtil.isNotEmpty(deviceIssue1)) { + throw new BizException("租户权限已存在"); + } + } + iDeviceInstallInfoData.save(deviceInstallInfo.getData()); + + } + + @PostMapping("/device/{id}/delete") + @SaCheckPermission("device:issue:delete") + public void deleteClientUser(@PathVariable("id") String id) { + DeviceIssue user = iDeviceInstallInfoData.findById(id); + if (user == null) { + throw new BizException(ErrCode.RECORD_NOT_FOUND); + } + iDeviceInstallInfoData.deleteById(id); + } + + /* @PostMapping("/getDeviceInstallInfo") + public DeviceInstallInfo getUserInfo() { + return iDeviceInstallInfoData.findById(LoginHelper.getUserId()); + }*/ + @PostMapping("/getDetail") + @SaCheckPermission("device:issue:query") + public DeviceIssue getDetail(@Validated @RequestBody Request request) { + return iDeviceInstallInfoData.findById(request.getData()); + } + + @PostMapping("/getDetailTenandId") + // @SaCheckPermission("device:issue:query") + public DeviceIssue getDetailTenandId() { + + return iDeviceInstallInfoData.findByTenantId(TenantHelper.getTenantId()); + } + +} diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java index 45af421..5005fc9 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java @@ -76,7 +76,7 @@ public class ProductController { private IProductService productService; @ApiOperation("列表") - @SaCheckPermission("iot:product:query") + // @SaCheckPermission("iot:product:query") @PostMapping("/list") public Paging getProducts(@Validated(QueryGroup.class) @RequestBody PageRequest request) { diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/StatsController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/StatsController.java index 0d312f8..c277731 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/StatsController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/StatsController.java @@ -28,6 +28,7 @@ import cc.iotkit.common.api.Request; import cc.iotkit.common.satoken.utils.AuthUtil; import cc.iotkit.common.satoken.utils.LoginHelper; import cc.iotkit.common.utils.StreamUtils; +import cc.iotkit.common.validate.QueryGroup; import cc.iotkit.data.config.TenantContext; import cc.iotkit.data.manager.IAlertRecordData; import cc.iotkit.data.manager.ICategoryData; @@ -37,10 +38,13 @@ import cc.iotkit.data.system.ISysDeptData; import cc.iotkit.data.system.ISysUserData; import cc.iotkit.manager.dto.bo.device.DeviceQueryBo; +import cc.iotkit.manager.dto.bo.product.ProductBo; import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo; +import cc.iotkit.manager.dto.vo.product.ProductVo; import cc.iotkit.manager.model.stats.MainStats; import cc.iotkit.manager.service.AlertService; import cc.iotkit.manager.service.IDeviceManagerService; +import cc.iotkit.manager.service.IProductService; import cc.iotkit.model.alert.AlertRecord; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.model.stats.AlertStatDTO; @@ -95,6 +99,8 @@ public class StatsController { private AlertService alertService; @Autowired private IDeviceManagerService deviceServiceImpl; + @Autowired + private IProductService productService; @Autowired private ISysDeptData isysDeptData; @@ -121,14 +127,14 @@ public class StatsController { DeviceInfo.State state = new DeviceInfo.State(); state.setOnline(true); condition.setState(state); - mainStats.setOnlineTotal(deviceInfoData.findAllByCondition(condition).size()); + mainStats.setOnlineTotal(deviceInfoData.findNeverUsedDevices(condition,true)); state.setOnline(false); condition.setState(state); - mainStats.setOfflineTotal(deviceInfoData.findAllByCondition(condition).size()); + mainStats.setOfflineTotal(deviceInfoData.findNeverUsedDevices(condition,true)); // 待激活设备 - mainStats.setNeverOnlineTotal(deviceInfoData.findNeverUsedDevices().size()); + mainStats.setNeverOnlineTotal(deviceInfoData.findNeverUsedDevices(condition,false)); mainStats.setReportTotal(thingModelMessageData.count()); //上行数据统计 @@ -147,6 +153,18 @@ public class StatsController { DeviceInfo condition = new DeviceInfo(); DeviceInfo.State state = new DeviceInfo.State(); + state.setOnline(true); + condition.setState(state); + mainStats.setOnlineTotal(deviceInfoData.findNeverUsedDevices(condition,true)); + + state.setOnline(false); + condition.setState(state); + mainStats.setOfflineTotal(deviceInfoData.findNeverUsedDevices(condition,true)); + + // 待激活设备 + mainStats.setNeverOnlineTotal(deviceInfoData.findNeverUsedDevices(condition,false)); + + /* DeviceInfo.State state = new DeviceInfo.State(); state.setOnline(true); condition.setState(state); mainStats.setOnlineTotal(deviceInfoData.findAllByCondition(condition).size()); @@ -156,7 +174,7 @@ public class StatsController { mainStats.setOfflineTotal(deviceInfoData.findAllByCondition(condition).size()); // 待激活设备 - mainStats.setNeverOnlineTotal(deviceInfoData.findNeverUsedDevices().size()); + mainStats.setNeverOnlineTotal(deviceInfoData.findNeverUsedDevices().size());*/ // mainStats.setReportTotal(deviceReportRepository.countByUid(uid)); //上报数据统计 @@ -206,14 +224,15 @@ public class StatsController { DeviceInfo.State state = new DeviceInfo.State(); state.setOnline(true); condition.setState(state); - mainStats.setOnlineTotal(deviceInfoData.findAllByCondition(condition).size()); + mainStats.setOnlineTotal(deviceInfoData.findNeverUsedDevices(condition,true)); state.setOnline(false); condition.setState(state); - mainStats.setOfflineTotal(deviceInfoData.findAllByCondition(condition).size()); + mainStats.setOfflineTotal(deviceInfoData.findNeverUsedDevices(condition,true)); // 待激活设备 - mainStats.setNeverOnlineTotal(deviceInfoData.findNeverUsedDevices().size()); + mainStats.setNeverOnlineTotal(deviceInfoData.findNeverUsedDevices(condition,false)); + mainStats.setReportTotal(thingModelMessageData.count()); //上行数据统计 @@ -365,4 +384,22 @@ public class StatsController { //long countByUid(String uid); } + + //-----------------------大屏開放接口 + @ApiOperation("查询告警消息分页") + @PostMapping("/selectAlertRecordPage") + public Paging selectAlertRecordPage(@RequestBody @Validated PageRequest request) { + request.getData().setStatusFlg(true); + return alertService.selectAlertRecordPage(request); + } + @ApiOperation("产品列表") + @PostMapping("/selectListProduct") + public Paging getProducts(@Validated(QueryGroup.class) @RequestBody + PageRequest request) { + TenantContext.disableTenantFilter(); + request.getData().setTenantId(null); + return productService.selectPageList(request); + } + + } diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/device/DeviceQueryBo.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/device/DeviceQueryBo.java index 4f0d6fa..ce9c22e 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/device/DeviceQueryBo.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/device/DeviceQueryBo.java @@ -23,6 +23,7 @@ package cc.iotkit.manager.dto.bo.device; import cc.iotkit.common.api.BaseDto; +import cc.iotkit.manager.dto.bo.deviceconfig.DeviceConfigAddBo; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.model.system.SysApp; import io.github.linpeilie.annotations.AutoMapper; @@ -87,4 +88,7 @@ public class DeviceQueryBo extends BaseDto { private String startTime; @ApiModelProperty(value = "设备名称") private String endTime; + private String config; + + } diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/AlertRecordExpordVo.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/AlertRecordExpordVo.java new file mode 100644 index 0000000..f303fc3 --- /dev/null +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/AlertRecordExpordVo.java @@ -0,0 +1,109 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ +package cc.iotkit.manager.dto.vo.deviceinfo; + +import cc.iotkit.model.Owned; +import cc.iotkit.model.TenantModel; +import cc.iotkit.model.alert.AlertRecord; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Map; + +/** + * 告警配置 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = AlertRecord.class,convertGenerate = false) +public class AlertRecordExpordVo implements Serializable { + private static final long serialVersionUID = -1L; + + // private Long id; + // private Map params; + /** + * 配置所属用户 + */ + // private String uid; + + /** + * 告警名称 + */ + @ExcelProperty(value = "告警名称") + private String name; + + /** + * 告警严重度(1-5) + */ + @ExcelProperty(value = "告警严重度") + private String level; + + /** + * 告警时间 + */ + /* @JsonFormat(timezone = "Asia/Shanghai",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")*/ + @ExcelProperty(value = "告警时间") + private Long alertTime; + // private String alertTimeStats; + /** + * 告警详情 + */ + @ExcelProperty(value = "告警详情") + private String details; + @ExcelProperty(value = "创建租户") + private Long tenantId; + @ExcelProperty(value = "创建区域") + private Long deptAreaId; + /** + * 是否已读 + */ + @ExcelProperty(value = "是否已读") + private Boolean readFlg; + // private Boolean statusFlg = false; + + @ExcelProperty(value = "清除原因,0测试、1点检、2已确认") + private Integer reasonForRemoval; + @ExcelProperty(value = "清除1已清除0未清除") + private Integer reasonForRemovalFlag; + @ExcelProperty(value = "安装地址") + private String site; + @ExcelProperty(value = "设备编号") + private String deviceName; + @ExcelProperty(value = "所属产品") + private String productKey; + @ExcelProperty(value = "事件类型") + private String levelStatus; + + /* @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + public Date getAlertTime() { + return new Date(this.alertTime); + }*/ + +} diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/DeviceInfoVo.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/DeviceInfoVo.java index b060ea1..ee80803 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/DeviceInfoVo.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/DeviceInfoVo.java @@ -134,4 +134,6 @@ public class DeviceInfoVo implements Serializable { private String nodeFiveDevice; private String longitude; private String latitude; + private String category; + } diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/AlertService.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/AlertService.java index 254f5ef..28eba05 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/AlertService.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/AlertService.java @@ -67,6 +67,9 @@ public class AlertService { public Paging selectAlertRecordPage(PageRequest request) { return alertRecordData.selectAlertConfigPage(request); } + public Paging selectAlertRecordPageExcel(PageRequest request) { + return alertRecordData.selectAlertRecordPageExcel(request); + } public void save(AlertRecord request) { alertRecordData.save(request); } diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceCtrlService.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceCtrlService.java index 753e5b9..3c9efa1 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceCtrlService.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceCtrlService.java @@ -30,6 +30,7 @@ import cc.iotkit.common.utils.JsonUtils; import cc.iotkit.common.utils.UniqueIdUtil; import cc.iotkit.data.manager.IDeviceConfigData; import cc.iotkit.data.manager.IDeviceInfoData; +import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo; import cc.iotkit.model.device.DeviceConfig; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.temporal.IThingModelMessageData; @@ -142,6 +143,16 @@ public class DeviceCtrlService { return send(deviceId, device.getProductKey(), device.getDeviceName(), data, ThingModelMessage.TYPE_CONFIG, ThingModelMessage.ID_CONFIG_SET); } + public String sendConfig1(DeviceInfoVo device, DeviceConfig config) { + //DeviceInfo device = getAndCheckDevice(deviceId, checkOwner); + /* DeviceConfig config = deviceConfigData.findByDeviceId(deviceId); + if (config == null || ObjectUtil.isEmpty(config)) { + fail("设备未配置"); + }*/ + Map data = JsonUtils.parseObject(config.getConfig(), Map.class); + return send(device.getDeviceId(), device.getProductKey(), device.getDeviceName(), data, + ThingModelMessage.TYPE_CONFIG, ThingModelMessage.ID_CONFIG_SET); + } /** * 设备配置下发-读取设备配置 */ @@ -163,7 +174,9 @@ public class DeviceCtrlService { public String sendConfig(String deviceId) { return sendConfig(deviceId, true); } - + public String sendConfig(DeviceInfoVo deviceInfoVo,DeviceConfig deviceConfig) { + return sendConfig1(deviceInfoVo, deviceConfig); + } /** * 检查设备操作权限和状态 */ diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceStateCheckTask.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceStateCheckTask.java index 24fa99e..84306f2 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceStateCheckTask.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/DeviceStateCheckTask.java @@ -65,7 +65,7 @@ public class DeviceStateCheckTask { Paging all; while (true) { //取出数据库中所有在线设备 - all = deviceInfoData.findByConditions("","","","","",true,"",pn,1000,null,null,null); + all = deviceInfoData.findByConditions("","","","","",true,"",pn,1000,null,null,null,null); //判断属性更新时间是否大于产品定义保活时长 for (DeviceInfo device : all.getRows()) { if(ObjectUtil.isNull(device)){ diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IDeviceIssueService.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IDeviceIssueService.java new file mode 100644 index 0000000..7750c43 --- /dev/null +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IDeviceIssueService.java @@ -0,0 +1,44 @@ +/* + * + * * | Licensed 未经许可不能去掉「OPENIITA」相关版权 + * * +---------------------------------------------------------------------- + * * | Author: xw2sy@163.com + * * +---------------------------------------------------------------------- + * + * Copyright [2024] [OPENIITA] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * / + */ + +package cc.iotkit.manager.service; + +import cc.iotkit.common.api.PageRequest; +import cc.iotkit.common.api.Paging; +import cc.iotkit.manager.dto.bo.device.DeviceInstallInfoQueryBo; +import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInstallInfoVo; +import cc.iotkit.model.device.DeviceInstallInfo; +import cc.iotkit.model.device.DeviceIssue; + +import java.util.List; + +/** + * @Author: jay + * @Date: 2023/5/31 11:05 + * @Version: V1.0 + * @Description: 设备服务接口 + */ +public interface IDeviceIssueService { + Paging getPage(PageRequest pageRequest); + //List getList(PageRequest pageRequest); +} diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceIssueServiceImpl.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceIssueServiceImpl.java new file mode 100644 index 0000000..d237a7f --- /dev/null +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceIssueServiceImpl.java @@ -0,0 +1,102 @@ +package cc.iotkit.manager.service.impl; + + +import cc.iotkit.common.api.PageRequest; +import cc.iotkit.common.api.Paging; +import cc.iotkit.common.satoken.utils.LoginHelper; +import cc.iotkit.common.tenant.helper.TenantHelper; +import cc.iotkit.common.utils.MapstructUtils; +import cc.iotkit.data.dao.DeviceInstallInfoRepository; +import cc.iotkit.data.dao.DeviceIssueRepository; +import cc.iotkit.data.manager.IDeviceInstallInfoData; +import cc.iotkit.data.manager.IDeviceIssueData; +import cc.iotkit.data.manager.IUserInfoData; +import cc.iotkit.data.model.TbDeviceInstallInfo; +import cc.iotkit.data.model.TbDeviceIssue; +import cc.iotkit.data.system.ISysTenantData; +import cc.iotkit.manager.dto.bo.device.DeviceInstallInfoQueryBo; +import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInstallInfoVo; +import cc.iotkit.manager.service.IDeviceInstallInfoService; +import cc.iotkit.manager.service.IDeviceIssueService; +import cc.iotkit.model.UserInfo; +import cc.iotkit.model.device.DeviceInstallInfo; +import cc.iotkit.model.device.DeviceIssue; +import cc.iotkit.model.system.SysTenant; +import cn.hutool.core.util.ObjectUtil; +import com.querydsl.jpa.impl.JPAQuery; +import com.querydsl.jpa.impl.JPAQueryFactory; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static cc.iotkit.data.model.QTbDeviceIssue.tbDeviceIssue; + + +/** + * 物联网卡 Service 实现类 + * + * @author 芋道源码 + */ +@Slf4j +@Service +@Primary +@RequiredArgsConstructor +public class DeviceIssueServiceImpl implements IDeviceIssueService { + @Autowired + private final ISysTenantData isSysTenantData; + @Autowired + private IDeviceIssueData iDeviceInstallInfoData; + //@Autowired + // private IUserInfoData iUserInfoData; + @Autowired + private DeviceIssueRepository deviceInstallInfoRepository; + private final JPAQueryFactory jpaQueryFactory; + + + + @Override + public Paging getPage(PageRequest pageReqVO) { + + JPAQuery query = jpaQueryFactory.selectFrom(tbDeviceIssue); + + + if(LoginHelper.isSuperAdmin() && TenantHelper.getTenantId() != 0){ + query.where(tbDeviceIssue.tenantId.eq(TenantHelper.getTenantId())); + } + if(!LoginHelper.isSuperAdmin() && ObjectUtil.isNotNull(pageReqVO.getData().getTenantId())){ + query.where(tbDeviceIssue.tenantId.eq(pageReqVO.getData().getTenantId())); + } + query.orderBy(tbDeviceIssue.createTime.desc()); + Integer page = ObjectUtil.isNotNull(pageReqVO.getPageNum()) ?pageReqVO.getPageNum():1; + Integer size = ObjectUtil.isNotNull(pageReqVO.getPageSize()) ?pageReqVO.getPageSize():10; + query.offset((page - 1) * size).limit(size); + List tbDeviceInfos = query.fetch(); + List deviceInfos = new ArrayList<>(tbDeviceInfos.size()); + long total = query.fetchCount(); + for (TbDeviceIssue tbDeviceInfo : tbDeviceInfos) { + DeviceIssue deviceInfo = MapstructUtils.convert(tbDeviceInfo, DeviceIssue.class); + if (ObjectUtil.isNotNull(tbDeviceInfo.getTenantId())) { + SysTenant sysTenant = new SysTenant(); + sysTenant.setTenantId(tbDeviceInfo.getTenantId()); + SysTenant sysTenant1 = isSysTenantData.findOneByCondition(sysTenant); + if (sysTenant1 != null) { + deviceInfo.setTenantName(sysTenant1.getCompanyName()); + } + + } + deviceInfos.add(deviceInfo); + } + return new Paging<>(total, deviceInfos); + + } + // 构建动态查询条件(含排序) + + +} \ No newline at end of file diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java index 1d94517..8584239 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java @@ -43,6 +43,7 @@ import cc.iotkit.data.system.ISysDeptData; import cc.iotkit.manager.dto.bo.device.*; import cc.iotkit.manager.dto.bo.devicegroup.DeviceAddGroupBo; import cc.iotkit.manager.dto.bo.devicegroup.DeviceGroupBo; +import cc.iotkit.manager.dto.vo.category.CategoryVo; import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo; import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupImportVo; import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo; @@ -61,6 +62,7 @@ import cc.iotkit.model.device.DeviceGroup; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.model.device.DeviceInstallInfo; import cc.iotkit.model.device.message.DeviceProperty; +import cc.iotkit.model.product.Category; import cc.iotkit.model.product.Product; import cc.iotkit.model.system.SysApp; import cc.iotkit.model.system.SysDept; @@ -71,6 +73,7 @@ import cc.iotkit.temporal.IThingModelMessageData; import cn.hutool.core.util.ObjectUtil; import com.querydsl.jpa.impl.JPAQuery; import lombok.SneakyThrows; +import me.chanjar.weixin.common.bean.subscribemsg.CategoryData; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -132,6 +135,9 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { private IUserInfoData iUserInfoData; @Autowired private IDeviceInfoData iDeviceInfoData; + @Autowired + @Qualifier("categoryDataCache") + private ICategoryData categoryData; @Override public Paging getDevices(PageRequest pageRequest) { @@ -140,6 +146,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { String uid = query.getUid(); String subUid = ""; String name = query.getName(); + String deviceName = query.getDeviceName(); String pk = query.getProductKey(); //关键字查询 String keyword = query.getKeyword(); @@ -147,12 +154,28 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { Boolean online = query.getOnline(); Long areaDepeId = query.getDeptAreaId(); Paging result = MapstructUtils.convert(deviceInfoData.findByConditions(name, uid, subUid, pk, group, - online, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(), areaDepeId,query.getStartTime(), query.getEndTime()), DeviceInfoVo.class); + online, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(), areaDepeId, query.getStartTime(), query.getEndTime(), deviceName), DeviceInfoVo.class); + List categorys = categoryData.findAll(); for (DeviceInfoVo row : result.getRows()) { - row.setProduct(productData.findByProductKey(row.getProductKey())); + if (ObjectUtil.isNotEmpty(row.getProductKey())) { + Product product = productData.findByProductKey(row.getProductKey()); + if (ObjectUtil.isNotEmpty(product)) { + row.setProduct(product); + for (Category category : categorys) { + if (ObjectUtil.isNotEmpty(product.getCategory()) && ObjectUtil.isNotEmpty(category.getId())) { + if (category.getId().equals(product.getCategory())) { + row.setCategory(category.getName()); + break; + } + } + } + } + } + } return result; } + @Override public Paging getDevices1(PageRequest pageRequest) { DeviceQueryBo query = pageRequest.getData(); @@ -160,6 +183,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { String uid = query.getUid(); String subUid = ""; String name = query.getName(); + String deviceName = query.getDeviceName(); String pk = query.getProductKey(); //关键字查询 String keyword = query.getKeyword(); @@ -167,7 +191,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { Boolean online = query.getOnline(); Long areaDepeId = query.getDeptAreaId(); Paging result = MapstructUtils.convert(deviceInfoData.findByConditions1(name, uid, subUid, pk, group, - online, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(), areaDepeId,query.getStartTime(), query.getEndTime()), DeviceInfoVo.class); + online, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(), areaDepeId, query.getStartTime(), query.getEndTime(), deviceName), DeviceInfoVo.class); for (DeviceInfoVo row : result.getRows()) { row.setProduct(productData.findByProductKey(row.getProductKey())); } @@ -203,12 +227,13 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { Long areaDepeId = query.getDeptAreaId(); //pageRequest.setPageSize(99999); Paging result = MapstructUtils.convert(deviceInfoData.findByConditionsExcel(name, uid, subUid, pk, group, - online, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(), areaDepeId,query.getStartTime(), query.getEndTime()), DeviceInfoVo.class); + online, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(), areaDepeId, query.getStartTime(), query.getEndTime()), DeviceInfoVo.class); /* for (DeviceInfoVo row : result.getRows()) { row.setProduct(productData.findByProductKey(row.getProductKey())); }*/ return result.getRows(); } + @Override public List findByConditionsList(String productKey, boolean flag) { return MapstructUtils.convert(iDeviceInfoData.findByConditionsList(productKey, flag), DeviceInfoVo.class); @@ -247,7 +272,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { /* if(ObjectUtil.isNotNull(sysDept) && ObjectUtil.isNull(deviceInfo.getTenantId())) { device.setTenantId(sysDept.getTenantId()); }*/ - if (ObjectUtil.isNotNull(sysDept) && ObjectUtil.isNull(deviceInfo.getTenantId()) ) { + if (ObjectUtil.isNotNull(sysDept) && ObjectUtil.isNull(deviceInfo.getTenantId())) { device.setTenantId(sysDept.getTenantId()); } if (LoginHelper.isSuperAdmin() && TenantHelper.getTenantId() == 0) { @@ -365,12 +390,12 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { public boolean unbindDeviceXcx(String deviceId) { TenantContext.disableTenantFilter(); DeviceInfo deviceInfo = deviceInfoData.findByDeviceId(deviceId); - DeviceInstallInfo deviceInstallInfo = iDeviceInstallInfoData.findByDeviceNameAndUidAndState(deviceInfo.getDeviceName(), deviceInfo.getUid(),0); - if(ObjectUtil.isNotEmpty(deviceInstallInfo)){ - //解绑 - deviceInstallInfo.setState(1); - iDeviceInstallInfoData.save(deviceInstallInfo); - } + DeviceInstallInfo deviceInstallInfo = iDeviceInstallInfoData.findByDeviceNameAndUidAndState(deviceInfo.getDeviceName(), deviceInfo.getUid(), 0); + if (ObjectUtil.isNotEmpty(deviceInstallInfo)) { + //解绑 + deviceInstallInfo.setState(1); + iDeviceInstallInfoData.save(deviceInstallInfo); + } deviceInfo.setUid(""); deviceInfo.setName(""); deviceInfoData.save(deviceInfo); @@ -603,7 +628,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { if (deviceRepetition != null && !deviceRepetition.getDeviceId().equals(di.getDeviceId())) { throw new BizException(ErrCode.MODEL_DEVICE_ALREADY); } - if(ObjectUtil.isNotEmpty(deviceRepetition) && ObjectUtil.isNotNull(deviceRepetition.getState())) { + if (ObjectUtil.isNotEmpty(deviceRepetition) && ObjectUtil.isNotNull(deviceRepetition.getState())) { di.setState(deviceRepetition.getState()); } /* if(ObjectUtil.isNotNull(data.getGroup())){ @@ -613,25 +638,26 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { TenantHelper.enableIgnore(); return deviceInfoData.save(di) != null; } + public static Map convert(Object obj) { - return obj instanceof Map ? ((Map) obj).entrySet().stream() + return obj instanceof Map ? ((Map) obj).entrySet().stream() .filter(e -> e.getKey() instanceof String) .filter(e -> e.getValue() instanceof DeviceInfo.Group) .collect(Collectors.toMap( - e -> (String)e.getKey(), - e -> (DeviceInfo.Group)e.getValue() + e -> (String) e.getKey(), + e -> (DeviceInfo.Group) e.getValue() )) : Collections.emptyMap(); } public boolean process(DeviceInfoBo dto) { Object input = dto.getGroup(); - if(input == null){ + if (input == null) { return false; } if (input instanceof Map) { // 处理Map逻辑 return true; - }else if(isMapFormat(input.toString())){ + } else if (isMapFormat(input.toString())) { // 处理Map逻辑 return true; } else { @@ -639,6 +665,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { return false; } } + public boolean isMapFormat(String input) { return input.matches("^\\{(\\w+:\\w+,?)*\\}$"); } @@ -647,25 +674,26 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { public boolean saveDevice1(DeviceInfoBo data) { DeviceInfo di = new DeviceInfo(); - if(ObjectUtil.isNull(data) || ObjectUtil.isNull(data.getId())){ + if (ObjectUtil.isNull(data) || ObjectUtil.isNull(data.getId())) { fail("修改失败"); } DeviceInfo deviceInfo = deviceInfoData.findByDeviceId(data.getId()); - if(ObjectUtil.isEmpty(deviceInfo)){ + if (ObjectUtil.isEmpty(deviceInfo)) { fail("设备不存在"); } deviceInfo.setSite(data.getSite()); - // DeviceInfo.Locate locate = deviceInfo.getLocate(); + // DeviceInfo.Locate locate = deviceInfo.getLocate(); /* deviceInfo.getLocate().setLatitude(deviceInfo.getLatitude()); deviceInfo.getLocate().setLongitude(deviceInfo.getLongitude());*/ deviceInfo.setDeptAreaId(data.getDeptAreaId()); - // di.setId(data.getId()); + // di.setId(data.getId()); TenantHelper.enableIgnore(); return deviceInfoData.save(deviceInfo) != null; } + @Override public boolean editDeviceInfo(DeviceInfoBo data) { String uid = AuthUtil.getUserId(); @@ -704,7 +732,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { fail(ErrCode.DEVICE_NOT_FOUND); } - deviceRepetition = deviceInfoData.findByDeviceId(deviceRepetition.getId()); + deviceRepetition = deviceInfoData.findByDeviceId(deviceRepetition.getId()); if (ObjectUtil.isNull(deviceRepetition.getTenantId())) { fail("租户未指定"); @@ -746,9 +774,9 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService { deviceRepetition.setSite(data.getDeviceInstallInfo().getCommunityName() + data.getDeviceInstallInfo().getBuildingUnit() + data.getDeviceInstallInfo().getRoomNo()); - // deviceRepetition.getLocate().setLatitude(deviceRepetition.getLatitude()); - // deviceRepetition.getLocate().setLongitude(deviceRepetition.getLongitude()); - DeviceInstallInfo deviceRepetition1 = iDeviceInstallInfoData.findByDeviceNameAndUidAndState(deviceRepetition.getDeviceName(), uid,0); + // deviceRepetition.getLocate().setLatitude(deviceRepetition.getLatitude()); + // deviceRepetition.getLocate().setLongitude(deviceRepetition.getLongitude()); + DeviceInstallInfo deviceRepetition1 = iDeviceInstallInfoData.findByDeviceNameAndUidAndState(deviceRepetition.getDeviceName(), uid, 0); if (deviceRepetition1 != null) { throw new BizException("安装信息已存在"); } diff --git a/iot-module/iot-plugin/iot-plugin-main/src/main/java/cc/iotkit/plugin/main/ThingServiceImpl.java b/iot-module/iot-plugin/iot-plugin-main/src/main/java/cc/iotkit/plugin/main/ThingServiceImpl.java index 6f58450..4c35085 100644 --- a/iot-module/iot-plugin/iot-plugin-main/src/main/java/cc/iotkit/plugin/main/ThingServiceImpl.java +++ b/iot-module/iot-plugin/iot-plugin-main/src/main/java/cc/iotkit/plugin/main/ThingServiceImpl.java @@ -56,6 +56,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.RandomStringUtils; +import org.redisson.api.RAtomicLong; import org.redisson.api.RMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -73,6 +74,7 @@ import java.util.stream.Collectors; import static cc.iotkit.common.redis.utils.RedisUtils.*; import static com.ibm.icu.impl.Assert.fail; +import static io.vertx.ext.web.client.spi.CookieStore.build; /** * @author sjg @@ -109,8 +111,12 @@ public class ThingServiceImpl implements IThingService { private RuleExecutor ruleExecutor; @Autowired private RuleMessageHandler ruleMessageHandler; + /* @Override + public ActionResult post(String pluginId, IDeviceAction action) { - @Override + return ActionResult.builder().code(1).reason("").build(); + }*/ + @Override public ActionResult post(String pluginId, IDeviceAction action) { try { @@ -124,26 +130,26 @@ public class ThingServiceImpl implements IThingService { } long lastTime = System.currentTimeMillis(); DeviceInfo device = getDeviceInfo(deviceName); - if (ObjectUtil.isNotEmpty(action)) { + /* if (ObjectUtil.isNotEmpty(action)) { try { DeviceStateChange deviceInfo = ((DeviceStateChange) action); if (ObjectUtil.isNotEmpty(deviceInfo) && ObjectUtil.isNotNull(deviceInfo.getState())) { // if (deviceInfo.getState().equals(DeviceState.ONLINE)) { device.getState().setOnline(true); device.getState().setOnlineTime(System.currentTimeMillis()); - /* } else { + } else { device.getState().setOnline(false); device.getState().setOfflineTime(System.currentTimeMillis()); - }*/ + } } } catch (Exception e) { - } - - } + }*/ if (Objects.isNull(device)) { log.warn("device:{} is not found.", deviceName); } else { + device.getState().setOnline(true); + device.getState().setOnlineTime(System.currentTimeMillis()); deviceUpdateLastTime(device, lastTime); } @@ -279,9 +285,32 @@ public class ThingServiceImpl implements IThingService { if (!status.equals(1) && !status.equals(2)) { device.setDeviceStatus(0); } + String eventTypeValue = ""; List deviceInfoArrayList = new ArrayList<>(); boolean success = false; //设备在线发生了故障或者报警 + try { + if (isMapValid(map, "resultCode")) { + String ALERT_MAP_KEY = "device:config:sends"; + RMap alertMap = RedisUtils.getClient().getMap(ALERT_MAP_KEY); + String counterKey = "device:alert:modify_count"; + RAtomicLong counter = RedisUtils.getClient().getAtomicLong(counterKey); + if(!alertMap.isEmpty()) { + if (map.get("resultCode").equals("0")) { + alertMap.put(device.getDeviceName(), 0); + } else { + alertMap.put(device.getDeviceName(), 1); + } + counter.incrementAndGet(); + /* if (currentCount >= alertMap.size()) { + alertMap.clear(); + counter.delete(); + }*/ + } + } + }catch (Exception e){ + + } if (isMapValid(map, "eventTypeValue")) { if (map.get("eventTypeValue").toString().contains("寿命到期")) { @@ -303,7 +332,7 @@ public class ThingServiceImpl implements IThingService { } success = true; device.setDeviceStatus(2); - } + } else if (map.get("eventTypeValue").toString().contains("报警恢复")) { device.setDeviceStatus(0); deviceLinkageControl1(device); @@ -315,7 +344,8 @@ public class ThingServiceImpl implements IThingService { device.setDeviceStatus(0); deviceLinkageControl1(device); } - // } + eventTypeValue = map.get("eventTypeValue").toString(); + } if (!state.isOnline()) { if (!status.equals(1) && !status.equals(2)) { device.setDeviceStatus(3); @@ -338,18 +368,14 @@ public class ThingServiceImpl implements IThingService { .occurred(System.currentTimeMillis()) .build(); List config = iAlertConfigData.findByDeviceName(device.getDeviceName()); - /* if(config.isEmpty()){ - List rules = ruleMessageHandler.processMessage1(thingModelMessage); - for (Rule rule : rules) { - config = iAlertConfigData.findByRuleInfoId(rule.getId()); - } - }*/ + // List alerts = idAlertRecordData.selectAlertConfigPage(AlertRecordBo.builder().details(device.getDeviceName()).build()); System.out.println("设备告警 您的设备【" + device.getDeviceName() + "】触发事件 事件类型为:【" + map.get("eventTypeValue").toString() + "】。"); if (ObjectUtil.isEmpty(config)) { try { ExecutorService executor = Executors.newSingleThreadExecutor(); List deviceInfoArrayList1 = deviceInfoArrayList; + String eventTypeValue1 =eventTypeValue; executor.execute(() -> { List rules = ruleMessageHandler.processMessage1(thingModelMessage); for (Rule rule : rules) { @@ -359,6 +385,11 @@ public class ThingServiceImpl implements IThingService { .level(config1.get(i).getLevel()) .name(config1.get(i).getName()) .tenantId(device.getTenantId()) + .productKey(device.getProductKey()) + .levelStatus(eventTypeValue1) + .site(device.getSite()) + .deviceName(device.getDeviceName()) + .reasonForRemovalFlag(0) .uid(device.getUid()) .deptAreaId(device.getDeptAreaId()) .readFlg(false) @@ -371,6 +402,11 @@ public class ThingServiceImpl implements IThingService { idAlertRecordData.save(AlertRecord.builder() .level(config1.get(i).getLevel()) .name(config1.get(i).getName()) + .reasonForRemovalFlag(0) + .productKey(device.getProductKey()) + .levelStatus(eventTypeValue1) + .deviceName(deviceInfoArrayList1.get(j).getDeviceName()) + .site(deviceInfoArrayList1.get(j).getSite()) .tenantId(deviceInfoArrayList1.get(j).getTenantId()) .uid(deviceInfoArrayList1.get(j).getUid()) .deptAreaId(deviceInfoArrayList1.get(j).getDeptAreaId()) @@ -391,11 +427,17 @@ public class ThingServiceImpl implements IThingService { } else { ExecutorService executor = Executors.newSingleThreadExecutor(); List deviceInfoArrayList1 = deviceInfoArrayList; + String eventTypeValue1 =eventTypeValue; executor.execute(() -> { for (int i = 0; i < config.size(); i++) { idAlertRecordData.save(AlertRecord.builder() .level(config.get(i).getLevel()) .name(config.get(i).getName()) + .site(device.getSite()) + .reasonForRemovalFlag(0) + .productKey(device.getProductKey()) + .levelStatus(eventTypeValue1) + .deviceName(device.getDeviceName()) .tenantId(device.getTenantId()) .uid(device.getUid()) .deptAreaId(device.getDeptAreaId()) @@ -409,6 +451,11 @@ public class ThingServiceImpl implements IThingService { idAlertRecordData.save(AlertRecord.builder() .level(config.get(i).getLevel()) .name(config.get(i).getName()) + .site(deviceInfoArrayList1.get(j).getSite()) + .reasonForRemovalFlag(0) + .productKey(device.getProductKey()) + .levelStatus(eventTypeValue1) + .deviceName(deviceInfoArrayList1.get(j).getDeviceName()) .tenantId(deviceInfoArrayList1.get(j).getTenantId()) .uid(deviceInfoArrayList1.get(j).getUid()) .deptAreaId(deviceInfoArrayList1.get(j).getDeptAreaId()) @@ -609,7 +656,7 @@ public class ThingServiceImpl implements IThingService { } - private boolean deviceLinkageControlSend(DeviceInfo device, String node) { + public boolean deviceLinkageControlSend(DeviceInfo device, String node) { ThingService thingService = ThingService.builder() .mid(UniqueIdUtil.newRequestId()) .productKey(device.getProductKey()) diff --git a/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysNoticeController.java b/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysNoticeController.java index e326614..7704bec 100644 --- a/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysNoticeController.java +++ b/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysNoticeController.java @@ -59,7 +59,7 @@ public class SysNoticeController extends BaseController { /** * 获取通知公告列表 */ - @SaCheckPermission("system:notice:list") + // @SaCheckPermission("system:notice:list") @ApiOperation(value = "获取通知公告列表", notes = "获取通知公告列表") @PostMapping("/list") public Paging list(@Validated @RequestBody PageRequest query) { diff --git a/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserController.java b/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserController.java index 43a15bb..134b97c 100644 --- a/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserController.java +++ b/iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserController.java @@ -89,7 +89,7 @@ public class SysUserController extends BaseController { @Qualifier("deviceInfoDataCache") private IDeviceInfoData deviceInfoData; @ApiOperation("获取用户列表") - @SaCheckPermission("system:user:list") + // @SaCheckPermission("system:user:list") @PostMapping("/list") public Paging list(@RequestBody @Validated(QueryGroup.class) PageRequest query) { /* if(LoginHelper.isSuperAdmin()){ diff --git a/iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysUserServiceImpl.java b/iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysUserServiceImpl.java index 17d61b8..4c24555 100644 --- a/iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysUserServiceImpl.java +++ b/iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysUserServiceImpl.java @@ -94,10 +94,12 @@ public class SysUserServiceImpl implements ISysUserService, UserService { condition.getData().setParams(query.getData().getParams()); }// 手动补全Map字段 if(!LoginHelper.isSuperAdmin()) { - SysUser sysUser = sysUserData.findById(LoginHelper.getUserId()); - condition.getData().setDeptId(sysUser.getDeptId()); - condition.getData().setDept(sysUser.getDept()); - condition.getData().setAreaDept(sysUser.getAreaDept()); + if(ObjectUtil.isNotEmpty(LoginHelper.getUserId())) { + SysUser sysUser = sysUserData.findById(LoginHelper.getUserId()); + condition.getData().setDeptId(sysUser.getDeptId()); + condition.getData().setDept(sysUser.getDept()); + condition.getData().setAreaDept(sysUser.getAreaDept()); + } } return sysUserData.findAll(condition).to(SysUserVo.class);