add iot record

plp
chenshuichuan 2 years ago
parent f317b2e8f9
commit bec2aaa930

@ -0,0 +1,257 @@
CREATE TABLE `iot_iot_organization`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '组织id',
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '组织名称',
`parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父组织id',
`sort` int NOT NULL DEFAULT '0' COMMENT '显示顺序',
`worker_user_id` bigint DEFAULT NULL COMMENT '负责人/工人',
`org_id` bigint DEFAULT NULL COMMENT '绑定工位id',
`status` tinyint NOT NULL COMMENT '组织状态',
`org_class` tinyint NOT NULL COMMENT '组织等级',
`machine_type` tinyint NOT NULL COMMENT '机台类型',
`device_type` tinyint NOT NULL COMMENT '设备类型',
`is_component` tinyint NOT NULL COMMENT '是否关键件',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT 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 '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='IOT组织表';
CREATE TABLE `iot_device`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`device_config_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备配置id',
`device_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备编号',
`device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备名称',
`device_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备类型',
`siemens_series` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Siemens系列(S7-300、S7-1500)',
`siemens_connect_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '连接参数(波特率,数据位,停止位,校验位 例如960081N',
`read_cron_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读取任务方式(0无1有)',
`read_repeat_value` int DEFAULT NULL COMMENT '读取任务时间间隔',
`read_repeat_unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读取任务时间间隔单位',
`read_cron` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读取任务时间表达式',
`write_cron_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写入任务时间间隔',
`write_repeat_value` int DEFAULT NULL COMMENT '写入任务时间间隔',
`write_repeat_unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写入任务时间间隔单位',
`write_cron` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写入任务时间表达式',
`local_persistent` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否持久化(0不持久化1持久化)',
`upload_rate` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '上传方式(1实时2自定义)',
`rate_count` int DEFAULT NULL COMMENT '上传频率',
`modbus_protocol` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'modbus协议类型(serial-rtu)',
`modbus_pattern` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'modbus模式(client)',
`port_name` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'modbus串口号',
`modbus_connect_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '连接参数(波特率,数据位,停止位,校验位 例如960081N',
`modbus_read_addr_gap` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读地址是否连续(0否1是)',
`is_upload` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否已下发(0下,1没下)',
`gateway_id` bigint NOT NULL COMMENT '网关id',
`org_id` bigint NOT NULL COMMENT '组织设备id',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='物联设备表';
CREATE TABLE `iot_device_attribute`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`attribute_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '地址编码',
`address` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址',
`attribute_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '地址名称',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址描述',
`address_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址类型',
`address_offset` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址偏移',
`address2_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址2类型',
`address2_offset` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址2偏移',
`group_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '所属组',
`group_id` int DEFAULT NULL COMMENT '所属组id',
`security_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '安全类别',
`io_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读写状态',
`is_linear_transfer` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否线性换算(0是1否)',
`data_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '数据类型',
`unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '单位',
`in_min_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输入最小值',
`in_max_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输入最大值',
`out_min_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输出最小值',
`out_max_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输出最大值',
`out_data_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输出数据类型',
`siemens_field_precision` int DEFAULT '0' COMMENT '精度',
`modbus_slave_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '站号',
`modbus_field_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '寄存器地址',
`modbus_address_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '寄存器类型',
`modbus_field_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '个数',
`modbus_field_precision` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '缩放因子默认值为1大于0的小数',
`modbus_field_order` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '字节顺序',
`dept_id` int DEFAULT NULL COMMENT '组织机构',
`dept_name` varchar(255) DEFAULT NULL COMMENT '组织名称',
`source_data_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'mqtt进制类型binary,octal,hexadecimal,decimal',
`transfer_data_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转化进制类型binary,octal,hexadecimal,decimal',
`cal_addresses` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址合并计算公式',
`factor` varchar(32) DEFAULT NULL COMMENT '系数',
`gateway_id` bigint NOT NULL COMMENT '网关id',
`device_id` bigint NOT NULL COMMENT '设备id',
`org_id` bigint NOT NULL COMMENT '组织设备id',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='设备属性表';
CREATE TABLE `iot_formula`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公式名称',
`formula_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公式编号',
`formula` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公式',
`result_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '结果类型(产量,电耗,浆耗,水耗,气耗,参数)',
`data_unit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '单位',
`machine_id` bigint NOT NULL COMMENT '机台ID',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='计算公式';
CREATE TABLE `iot_formula_detail`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`formula_id` bigint NOT NULL COMMENT '计算公式ID',
`formula_code` varchar(255) DEFAULT NULL COMMENT '公式编号',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变量名称',
`device_id` bigint NOT NULL COMMENT '设备ID',
`attribute_id` bigint NOT NULL COMMENT '设备属性ID',
`attribute_name` varchar(255) DEFAULT NULL,
`address` varchar(64) DEFAULT NULL COMMENT '地址',
`demo_value` varchar(64) DEFAULT NULL COMMENT '示例值',
`sum_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '累积量类型sum:累加max-min:最大值-最小值',
`sum_range` varchar(64) DEFAULT NULL COMMENT '计算范围为空则不计算day当天,week当周,month当月',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='计算公式明细';
CREATE TABLE `iot_gateway`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`admin_ip` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '管理地址',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '管理账号',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '管理密码',
`gateway_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网关编码',
`gateway_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网关名字',
`topic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '订阅主题',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='网关表';
CREATE TABLE `iot_kanban`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '编码',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '标题',
`img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '缩略图',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='物联看板';
CREATE TABLE `iot_mqtt_record`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`machine_id` bigint NOT NULL COMMENT '机台ID',
`machine_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '机台',
`device_data_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '采集时间',
`device_data` json DEFAULT NULL COMMENT '数据',
`device_id` bigint NOT NULL COMMENT '设备id',
`device_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备编码',
`device_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备名称',
`worker_id` bigint DEFAULT NULL COMMENT '用户id',
`worker_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户',
`gateway_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网关',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='数采记录';
CREATE TABLE `iot_formula_record`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`machine_id` bigint NOT NULL COMMENT '机台ID',
`machine_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '机台',
`worker_id` bigint DEFAULT NULL COMMENT '用户id',
`worker_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户',
`result_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '类型',
`formula_id` bigint NOT NULL COMMENT '公式ID',
`formula_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公式编号',
`data_value` decimal(24, 6) DEFAULT NULL COMMENT '',
`data_unit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '单位',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='变量记录';

@ -83,215 +83,6 @@ CREATE TABLE `mes_produce_report_detail`
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='生产报工明细';
CREATE TABLE `iot_iot_organization`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '组织id',
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '组织名称',
`parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父组织id',
`sort` int NOT NULL DEFAULT '0' COMMENT '显示顺序',
`worker_user_id` bigint DEFAULT NULL COMMENT '负责人/工人',
`org_id` bigint DEFAULT NULL COMMENT '绑定工位id',
`status` tinyint NOT NULL COMMENT '组织状态',
`org_class` tinyint NOT NULL COMMENT '组织等级',
`machine_type` tinyint NOT NULL COMMENT '机台类型',
`device_type` tinyint NOT NULL COMMENT '设备类型',
`is_component` tinyint NOT NULL COMMENT '是否关键件',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT 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 '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='IOT组织表';
CREATE TABLE `iot_device`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`device_config_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备配置id',
`device_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备编号',
`device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备名称',
`device_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备类型',
`siemens_series` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Siemens系列(S7-300、S7-1500)',
`siemens_connect_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '连接参数(波特率,数据位,停止位,校验位 例如960081N',
`read_cron_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读取任务方式(0无1有)',
`read_repeat_value` int DEFAULT NULL COMMENT '读取任务时间间隔',
`read_repeat_unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读取任务时间间隔单位',
`read_cron` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读取任务时间表达式',
`write_cron_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写入任务时间间隔',
`write_repeat_value` int DEFAULT NULL COMMENT '写入任务时间间隔',
`write_repeat_unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写入任务时间间隔单位',
`write_cron` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写入任务时间表达式',
`local_persistent` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否持久化(0不持久化1持久化)',
`upload_rate` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '上传方式(1实时2自定义)',
`rate_count` int DEFAULT NULL COMMENT '上传频率',
`modbus_protocol` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'modbus协议类型(serial-rtu)',
`modbus_pattern` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'modbus模式(client)',
`port_name` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'modbus串口号',
`modbus_connect_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '连接参数(波特率,数据位,停止位,校验位 例如960081N',
`modbus_read_addr_gap` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读地址是否连续(0否1是)',
`is_upload` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否已下发(0下,1没下)',
`gateway_id` bigint NOT NULL COMMENT '网关id',
`org_id` bigint NOT NULL COMMENT '组织设备id',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='物联设备表';
CREATE TABLE `iot_device_attribute`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`attribute_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '地址编码',
`address` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址',
`attribute_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '地址名称',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址描述',
`address_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址类型',
`address_offset` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址偏移',
`address2_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址2类型',
`address2_offset` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址2偏移',
`group_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '所属组',
`group_id` int DEFAULT NULL COMMENT '所属组id',
`security_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '安全类别',
`io_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '读写状态',
`is_linear_transfer` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否线性换算(0是1否)',
`data_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '数据类型',
`unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '单位',
`in_min_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输入最小值',
`in_max_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输入最大值',
`out_min_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输出最小值',
`out_max_value` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输出最大值',
`out_data_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '输出数据类型',
`siemens_field_precision` int DEFAULT '0' COMMENT '精度',
`modbus_slave_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '站号',
`modbus_field_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '寄存器地址',
`modbus_address_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '寄存器类型',
`modbus_field_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '个数',
`modbus_field_precision` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '缩放因子默认值为1大于0的小数',
`modbus_field_order` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '字节顺序',
`dept_id` int DEFAULT NULL COMMENT '组织机构',
`dept_name` varchar(255) DEFAULT NULL COMMENT '组织名称',
`source_data_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'mqtt进制类型binary,octal,hexadecimal,decimal',
`transfer_data_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转化进制类型binary,octal,hexadecimal,decimal',
`cal_addresses` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址合并计算公式',
`factor` varchar(32) DEFAULT NULL COMMENT '系数',
`gateway_id` bigint NOT NULL COMMENT '网关id',
`device_id` bigint NOT NULL COMMENT '设备id',
`org_id` bigint NOT NULL COMMENT '组织设备id',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='设备属性表';
CREATE TABLE `iot_formula`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公式名称',
`formula_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公式编号',
`formula` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公式',
`result_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '结果类型(产量,电耗,浆耗,水耗,气耗,参数)',
`machine_id` bigint NOT NULL COMMENT '机台ID',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='计算公式';
CREATE TABLE `iot_formula_detail`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`formula_id` bigint NOT NULL COMMENT '计算公式ID',
`formula_code` varchar(255) DEFAULT NULL COMMENT '公式编号',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变量名称',
`device_id` bigint NOT NULL COMMENT '设备ID',
`attribute_id` bigint NOT NULL COMMENT '设备属性ID',
`attribute_name` varchar(255) DEFAULT NULL,
`address` varchar(64) DEFAULT NULL COMMENT '地址',
`demo_value` varchar(64) DEFAULT NULL COMMENT '示例值',
`sum_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '累积量类型sum:累加max-min:最大值-最小值',
`sum_range` varchar(64) DEFAULT NULL COMMENT '计算范围为空则不计算day当天,week当周,month当月',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='计算公式明细';
CREATE TABLE `iot_gateway`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`admin_ip` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '管理地址',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '管理账号',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '管理密码',
`gateway_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网关编码',
`gateway_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网关名字',
`topic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '订阅主题',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='网关表';
CREATE TABLE `iot_kanban`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '编码',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '标题',
`img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '缩略图',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='物联看板';
CREATE TABLE `mes_machine_component`
(

@ -22,5 +22,7 @@ public interface ErrorCodeConstants {
ErrorCode ORGANIZATION_PARENT_NOT_EXITS = new ErrorCode(1_003_000_000, "GoView 项目不存在");
ErrorCode ORGANIZATION_PARENT_IS_CHILD = new ErrorCode(1_003_000_000, "GoView 项目不存在");
ErrorCode ORGANIZATION_NAME_DUPLICATE = new ErrorCode(1_003_000_000, "GoView 项目不存在");
ErrorCode FORMULA_RECORD_NOT_EXISTS = new ErrorCode(1_003_000_000, "GoView 项目不存在");
ErrorCode MQTT_RECORD_NOT_EXISTS = new ErrorCode(1_003_000_000, "GoView 项目不存在");
}

@ -0,0 +1,96 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO;
import cn.iocoder.yudao.module.iot.service.formula.FormulaRecordService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@Tag(name = "管理后台 - 变量记录")
@RestController
@RequestMapping("/iot/formula-record")
@Validated
public class FormulaRecordController {
@Resource
private FormulaRecordService formulaRecordService;
@PostMapping("/create")
@Operation(summary = "创建变量记录")
@PreAuthorize("@ss.hasPermission('iot:formula-record:create')")
public CommonResult<Long> createFormulaRecord(@Valid @RequestBody FormulaRecordSaveReqVO createReqVO) {
return success(formulaRecordService.createFormulaRecord(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新变量记录")
@PreAuthorize("@ss.hasPermission('iot:formula-record:update')")
public CommonResult<Boolean> updateFormulaRecord(@Valid @RequestBody FormulaRecordSaveReqVO updateReqVO) {
formulaRecordService.updateFormulaRecord(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除变量记录")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('iot:formula-record:delete')")
public CommonResult<Boolean> deleteFormulaRecord(@RequestParam("id") Long id) {
formulaRecordService.deleteFormulaRecord(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得变量记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('iot:formula-record:query')")
public CommonResult<FormulaRecordRespVO> getFormulaRecord(@RequestParam("id") Long id) {
FormulaRecordDO formulaRecord = formulaRecordService.getFormulaRecord(id);
return success(BeanUtils.toBean(formulaRecord, FormulaRecordRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得变量记录分页")
@PreAuthorize("@ss.hasPermission('iot:formula-record:query')")
public CommonResult<PageResult<FormulaRecordRespVO>> getFormulaRecordPage(@Valid FormulaRecordPageReqVO pageReqVO) {
PageResult<FormulaRecordDO> pageResult = formulaRecordService.getFormulaRecordPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, FormulaRecordRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出变量记录 Excel")
@PreAuthorize("@ss.hasPermission('iot:formula-record:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportFormulaRecordExcel(@Valid FormulaRecordPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<FormulaRecordDO> list = formulaRecordService.getFormulaRecordPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "变量记录.xls", "数据", FormulaRecordRespVO.class,
BeanUtils.toBean(list, FormulaRecordRespVO.class));
}
}

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
@ -26,6 +27,8 @@ public class FormulaPageReqVO extends PageParam {
@Schema(description = "结果类型(产量,电耗,浆耗,水耗,气耗,参数)", example = "1")
private String resultType;
@Schema(description = "单位")
private String dataUnit;
@Schema(description = "机台ID", example = "12374")
private Long machineId;

@ -0,0 +1,40 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 变量记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class FormulaRecordPageReqVO extends PageParam {
@Schema(description = "机台", example = "李四")
private String machineName;
@Schema(description = "用户", example = "李四")
private String workerName;
@Schema(description = "类型", example = "2")
private String resultType;
@Schema(description = "公式编号")
private String formulaCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
/**
*
*/
@Schema(description = "采集时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] deviceDataTime;
}

@ -0,0 +1,69 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 变量记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class FormulaRecordRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23175")
@ExcelProperty("ID")
private Long id;
@Schema(description = "机台", example = "李四")
@ExcelProperty("机台")
private String machineName;
@Schema(description = "用户", example = "李四")
@ExcelProperty("用户")
private String workerName;
@Schema(description = "类型", example = "2")
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat("mes_data_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String resultType;
@Schema(description = "公式编号")
@ExcelProperty("公式编号")
private String formulaCode;
@Schema(description = "值")
@ExcelProperty("值")
private BigDecimal dataValue;
@Schema(description = "单位")
@ExcelProperty("单位")
private String dataUnit;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25709")
@ExcelProperty("机台ID")
private Long machineId;
@Schema(description = "用户id", example = "3807")
@ExcelProperty("用户id")
private Long workerId;
@Schema(description = "公式ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24943")
@ExcelProperty("公式ID")
private Long formulaId;
/**
*
*/
@Schema(description = "采集时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("采集时间")
private LocalDateTime deviceDataTime;
}

@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 变量记录新增/修改 Request VO")
@Data
public class FormulaRecordSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23175")
private Long id;
@Schema(description = "机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25709")
@NotNull(message = "机台ID不能为空")
private Long machineId;
@Schema(description = "机台", example = "李四")
private String machineName;
@Schema(description = "用户id", example = "3807")
private Long workerId;
@Schema(description = "用户", example = "李四")
private String workerName;
@Schema(description = "类型", example = "2")
private String resultType;
@Schema(description = "公式ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24943")
@NotNull(message = "公式ID不能为空")
private Long formulaId;
@Schema(description = "公式编号")
private String formulaCode;
@Schema(description = "值")
private BigDecimal dataValue;
@Schema(description = "单位")
private String dataUnit;
/**
*
*/
@Schema(description = "采集时间")
private LocalDateTime deviceDataTime;
}

@ -35,6 +35,9 @@ public class FormulaRespVO {
@ExcelProperty(value = "结果类型(产量,电耗,浆耗,水耗,气耗,参数)", converter = DictConvert.class)
@DictFormat("mes_data_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String resultType;
@Schema(description = "单位")
@ExcelProperty("单位")
private String dataUnit;
@Schema(description = "机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12374")
@ExcelProperty("机台ID")

@ -23,6 +23,8 @@ public class FormulaSaveReqVO {
@Schema(description = "结果类型(产量,电耗,浆耗,水耗,气耗,参数)", example = "1")
private String resultType;
@Schema(description = "单位")
private String dataUnit;
@Schema(description = "机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12374")
@NotNull(message = "机台ID不能为空")

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import cn.iocoder.yudao.module.iot.service.mqttrecord.MqttRecordService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@Tag(name = "管理后台 - 数采记录")
@RestController
@RequestMapping("/iot/mqtt-record")
@Validated
public class MqttRecordController {
@Resource
private MqttRecordService mqttRecordService;
@PostMapping("/create")
@Operation(summary = "创建数采记录")
@PreAuthorize("@ss.hasPermission('iot:mqtt-record:create')")
public CommonResult<Long> createMqttRecord(@Valid @RequestBody MqttRecordSaveReqVO createReqVO) {
return success(mqttRecordService.createMqttRecord(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新数采记录")
@PreAuthorize("@ss.hasPermission('iot:mqtt-record:update')")
public CommonResult<Boolean> updateMqttRecord(@Valid @RequestBody MqttRecordSaveReqVO updateReqVO) {
mqttRecordService.updateMqttRecord(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除数采记录")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('iot:mqtt-record:delete')")
public CommonResult<Boolean> deleteMqttRecord(@RequestParam("id") Long id) {
mqttRecordService.deleteMqttRecord(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得数采记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('iot:mqtt-record:query')")
public CommonResult<MqttRecordRespVO> getMqttRecord(@RequestParam("id") Long id) {
MqttRecordDO mqttRecord = mqttRecordService.getMqttRecord(id);
return success(BeanUtils.toBean(mqttRecord, MqttRecordRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得数采记录分页")
@PreAuthorize("@ss.hasPermission('iot:mqtt-record:query')")
public CommonResult<PageResult<MqttRecordRespVO>> getMqttRecordPage(@Valid MqttRecordPageReqVO pageReqVO) {
PageResult<MqttRecordDO> pageResult = mqttRecordService.getMqttRecordPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MqttRecordRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出数采记录 Excel")
@PreAuthorize("@ss.hasPermission('iot:mqtt-record:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportMqttRecordExcel(@Valid MqttRecordPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MqttRecordDO> list = mqttRecordService.getMqttRecordPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "数采记录.xls", "数据", MqttRecordRespVO.class,
BeanUtils.toBean(list, MqttRecordRespVO.class));
}
}

@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 数采记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MqttRecordPageReqVO extends PageParam {
@Schema(description = "机台", example = "赵六")
private String machineName;
@Schema(description = "采集时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] deviceDataTime;
@Schema(description = "数据")
private String deviceData;
@Schema(description = "设备编码")
private String deviceCode;
@Schema(description = "设备名称", example = "张三")
private String deviceName;
@Schema(description = "用户", example = "张三")
private String workerName;
@Schema(description = "网关")
private String gatewayCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,52 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 数采记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MqttRecordRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22946")
@ExcelProperty("ID")
private Long id;
@Schema(description = "机台", example = "赵六")
@ExcelProperty("机台")
private String machineName;
@Schema(description = "采集时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("采集时间")
private LocalDateTime deviceDataTime;
@Schema(description = "数据")
@ExcelProperty("数据")
private String deviceData;
@Schema(description = "设备编码")
@ExcelProperty("设备编码")
private String deviceCode;
@Schema(description = "设备名称", example = "张三")
@ExcelProperty("设备名称")
private String deviceName;
@Schema(description = "用户", example = "张三")
@ExcelProperty("用户")
private String workerName;
@Schema(description = "网关")
@ExcelProperty("网关")
private String gatewayCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,49 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 数采记录新增/修改 Request VO")
@Data
public class MqttRecordSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22946")
private Long id;
@Schema(description = "机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3561")
@NotNull(message = "机台ID不能为空")
private Long machineId;
@Schema(description = "机台", example = "赵六")
private String machineName;
@Schema(description = "采集时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "采集时间不能为空")
private LocalDateTime deviceDataTime;
@Schema(description = "数据")
private String deviceData;
@Schema(description = "设备id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31306")
@NotNull(message = "设备id不能为空")
private Long deviceId;
@Schema(description = "设备编码")
private String deviceCode;
@Schema(description = "设备名称", example = "张三")
private String deviceName;
@Schema(description = "用户id", example = "8427")
private Long workerId;
@Schema(description = "用户", example = "张三")
private String workerName;
@Schema(description = "网关")
private String gatewayCode;
}

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.formula;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@ -45,6 +46,8 @@ public class FormulaDO extends BaseDO {
* {@link TODO mes_data_type }
*/
private String resultType;
//@Schema(description = "单位")
private String dataUnit;
/**
* ID
*/

@ -0,0 +1,73 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.formula;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("iot_formula_record")
@KeySequence("iot_formula_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FormulaRecordDO extends BaseDO {
/**
* ID
*/
@TableId
private Long id;
/**
* ID
*/
private Long machineId;
/**
*
*/
private String machineName;
/**
* id
*/
private Long workerId;
/**
*
*/
private String workerName;
/**
*
*
* {@link TODO mes_data_type }
*/
private String resultType;
/**
* ID
*/
private Long formulaId;
/**
*
*/
private String formulaCode;
/**
*
*/
private BigDecimal dataValue;
/**
*
*/
private String dataUnit;
/**
*
*/
private LocalDateTime deviceDataTime;
}

@ -0,0 +1,72 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("iot_mqtt_record")
@KeySequence("iot_mqtt_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MqttRecordDO extends BaseDO {
/**
* ID
*/
@TableId
private Long id;
/**
* ID
*/
private Long machineId;
/**
*
*/
private String machineName;
/**
*
*/
private LocalDateTime deviceDataTime;
/**
*
*/
private String deviceData;
/**
* id
*/
private Long deviceId;
/**
*
*/
private String deviceCode;
/**
*
*/
private String deviceName;
/**
* id
*/
private Long workerId;
/**
*
*/
private String workerName;
/**
*
*/
private String gatewayCode;
}

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.iot.dal.mysql.formula;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface FormulaRecordMapper extends BaseMapperX<FormulaRecordDO> {
default PageResult<FormulaRecordDO> selectPage(FormulaRecordPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<FormulaRecordDO>()
.likeIfPresent(FormulaRecordDO::getMachineName, reqVO.getMachineName())
.likeIfPresent(FormulaRecordDO::getWorkerName, reqVO.getWorkerName())
.eqIfPresent(FormulaRecordDO::getResultType, reqVO.getResultType())
.eqIfPresent(FormulaRecordDO::getFormulaCode, reqVO.getFormulaCode())
.betweenIfPresent(FormulaRecordDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(FormulaRecordDO::getId));
}
}

@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface MqttRecordMapper extends BaseMapperX<MqttRecordDO> {
default PageResult<MqttRecordDO> selectPage(MqttRecordPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<MqttRecordDO>()
.likeIfPresent(MqttRecordDO::getMachineName, reqVO.getMachineName())
.betweenIfPresent(MqttRecordDO::getDeviceDataTime, reqVO.getDeviceDataTime())
.eqIfPresent(MqttRecordDO::getDeviceData, reqVO.getDeviceData())
.eqIfPresent(MqttRecordDO::getDeviceCode, reqVO.getDeviceCode())
.likeIfPresent(MqttRecordDO::getDeviceName, reqVO.getDeviceName())
.likeIfPresent(MqttRecordDO::getWorkerName, reqVO.getWorkerName())
.eqIfPresent(MqttRecordDO::getGatewayCode, reqVO.getGatewayCode())
.betweenIfPresent(MqttRecordDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MqttRecordDO::getId));
}
}

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.iot.service.formula;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import javax.validation.Valid;
/**
* Service
*
* @author
*/
public interface FormulaRecordService {
/**
*
*
* @param createReqVO
* @return
*/
Long createFormulaRecord(@Valid FormulaRecordSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateFormulaRecord(@Valid FormulaRecordSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteFormulaRecord(Long id);
/**
*
*
* @param id
* @return
*/
FormulaRecordDO getFormulaRecord(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<FormulaRecordDO> getFormulaRecordPage(FormulaRecordPageReqVO pageReqVO);
}

@ -0,0 +1,75 @@
package cn.iocoder.yudao.module.iot.service.formula;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.dal.mysql.formula.FormulaRecordMapper;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class FormulaRecordServiceImpl implements FormulaRecordService {
@Resource
private FormulaRecordMapper formulaRecordMapper;
@Override
public Long createFormulaRecord(FormulaRecordSaveReqVO createReqVO) {
// 插入
FormulaRecordDO formulaRecord = BeanUtils.toBean(createReqVO, FormulaRecordDO.class);
formulaRecordMapper.insert(formulaRecord);
// 返回
return formulaRecord.getId();
}
@Override
public void updateFormulaRecord(FormulaRecordSaveReqVO updateReqVO) {
// 校验存在
validateFormulaRecordExists(updateReqVO.getId());
// 更新
FormulaRecordDO updateObj = BeanUtils.toBean(updateReqVO, FormulaRecordDO.class);
formulaRecordMapper.updateById(updateObj);
}
@Override
public void deleteFormulaRecord(Long id) {
// 校验存在
validateFormulaRecordExists(id);
// 删除
formulaRecordMapper.deleteById(id);
}
private void validateFormulaRecordExists(Long id) {
if (formulaRecordMapper.selectById(id) == null) {
throw exception(FORMULA_RECORD_NOT_EXISTS);
}
}
@Override
public FormulaRecordDO getFormulaRecord(Long id) {
return formulaRecordMapper.selectById(id);
}
@Override
public PageResult<FormulaRecordDO> getFormulaRecordPage(FormulaRecordPageReqVO pageReqVO) {
return formulaRecordMapper.selectPage(pageReqVO);
}
}

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.iot.service.mqttrecord;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import javax.validation.Valid;
/**
* Service
*
* @author
*/
public interface MqttRecordService {
/**
*
*
* @param createReqVO
* @return
*/
Long createMqttRecord(@Valid MqttRecordSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateMqttRecord(@Valid MqttRecordSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteMqttRecord(Long id);
/**
*
*
* @param id
* @return
*/
MqttRecordDO getMqttRecord(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<MqttRecordDO> getMqttRecordPage(MqttRecordPageReqVO pageReqVO);
}

@ -0,0 +1,75 @@
package cn.iocoder.yudao.module.iot.service.mqttrecord;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord.MqttRecordMapper;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class MqttRecordServiceImpl implements MqttRecordService {
@Resource
private MqttRecordMapper mqttRecordMapper;
@Override
public Long createMqttRecord(MqttRecordSaveReqVO createReqVO) {
// 插入
MqttRecordDO mqttRecord = BeanUtils.toBean(createReqVO, MqttRecordDO.class);
mqttRecordMapper.insert(mqttRecord);
// 返回
return mqttRecord.getId();
}
@Override
public void updateMqttRecord(MqttRecordSaveReqVO updateReqVO) {
// 校验存在
validateMqttRecordExists(updateReqVO.getId());
// 更新
MqttRecordDO updateObj = BeanUtils.toBean(updateReqVO, MqttRecordDO.class);
mqttRecordMapper.updateById(updateObj);
}
@Override
public void deleteMqttRecord(Long id) {
// 校验存在
validateMqttRecordExists(id);
// 删除
mqttRecordMapper.deleteById(id);
}
private void validateMqttRecordExists(Long id) {
if (mqttRecordMapper.selectById(id) == null) {
throw exception(MQTT_RECORD_NOT_EXISTS);
}
}
@Override
public MqttRecordDO getMqttRecord(Long id) {
return mqttRecordMapper.selectById(id);
}
@Override
public PageResult<MqttRecordDO> getMqttRecordPage(MqttRecordPageReqVO pageReqVO) {
return mqttRecordMapper.selectPage(pageReqVO);
}
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.iot.dal.mysql.formula.FormulaRecordMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord.MqttRecordMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,147 @@
package cn.iocoder.yudao.module.iot.service.formula;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.mock.mockito.MockBean;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO;
import cn.iocoder.yudao.module.iot.dal.mysql.formula.FormulaRecordMapper;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
import java.util.*;
import java.time.LocalDateTime;
import static cn.hutool.core.util.RandomUtil.*;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/**
* {@link FormulaRecordServiceImpl}
*
* @author
*/
@Import(FormulaRecordServiceImpl.class)
public class FormulaRecordServiceImplTest extends BaseDbUnitTest {
@Resource
private FormulaRecordServiceImpl formulaRecordService;
@Resource
private FormulaRecordMapper formulaRecordMapper;
@Test
public void testCreateFormulaRecord_success() {
// 准备参数
FormulaRecordSaveReqVO createReqVO = randomPojo(FormulaRecordSaveReqVO.class).setId(null);
// 调用
Long formulaRecordId = formulaRecordService.createFormulaRecord(createReqVO);
// 断言
assertNotNull(formulaRecordId);
// 校验记录的属性是否正确
FormulaRecordDO formulaRecord = formulaRecordMapper.selectById(formulaRecordId);
assertPojoEquals(createReqVO, formulaRecord, "id");
}
@Test
public void testUpdateFormulaRecord_success() {
// mock 数据
FormulaRecordDO dbFormulaRecord = randomPojo(FormulaRecordDO.class);
formulaRecordMapper.insert(dbFormulaRecord);// @Sql: 先插入出一条存在的数据
// 准备参数
FormulaRecordSaveReqVO updateReqVO = randomPojo(FormulaRecordSaveReqVO.class, o -> {
o.setId(dbFormulaRecord.getId()); // 设置更新的 ID
});
// 调用
formulaRecordService.updateFormulaRecord(updateReqVO);
// 校验是否更新正确
FormulaRecordDO formulaRecord = formulaRecordMapper.selectById(updateReqVO.getId()); // 获取最新的
assertPojoEquals(updateReqVO, formulaRecord);
}
@Test
public void testUpdateFormulaRecord_notExists() {
// 准备参数
FormulaRecordSaveReqVO updateReqVO = randomPojo(FormulaRecordSaveReqVO.class);
// 调用, 并断言异常
assertServiceException(() -> formulaRecordService.updateFormulaRecord(updateReqVO), FORMULA_RECORD_NOT_EXISTS);
}
@Test
public void testDeleteFormulaRecord_success() {
// mock 数据
FormulaRecordDO dbFormulaRecord = randomPojo(FormulaRecordDO.class);
formulaRecordMapper.insert(dbFormulaRecord);// @Sql: 先插入出一条存在的数据
// 准备参数
Long id = dbFormulaRecord.getId();
// 调用
formulaRecordService.deleteFormulaRecord(id);
// 校验数据不存在了
assertNull(formulaRecordMapper.selectById(id));
}
@Test
public void testDeleteFormulaRecord_notExists() {
// 准备参数
Long id = randomLongId();
// 调用, 并断言异常
assertServiceException(() -> formulaRecordService.deleteFormulaRecord(id), FORMULA_RECORD_NOT_EXISTS);
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetFormulaRecordPage() {
// mock 数据
FormulaRecordDO dbFormulaRecord = randomPojo(FormulaRecordDO.class, o -> { // 等会查询到
o.setMachineName(null);
o.setWorkerName(null);
o.setResultType(null);
o.setFormulaCode(null);
o.setCreateTime(null);
});
formulaRecordMapper.insert(dbFormulaRecord);
// 测试 machineName 不匹配
formulaRecordMapper.insert(cloneIgnoreId(dbFormulaRecord, o -> o.setMachineName(null)));
// 测试 workerName 不匹配
formulaRecordMapper.insert(cloneIgnoreId(dbFormulaRecord, o -> o.setWorkerName(null)));
// 测试 resultType 不匹配
formulaRecordMapper.insert(cloneIgnoreId(dbFormulaRecord, o -> o.setResultType(null)));
// 测试 formulaCode 不匹配
formulaRecordMapper.insert(cloneIgnoreId(dbFormulaRecord, o -> o.setFormulaCode(null)));
// 测试 createTime 不匹配
formulaRecordMapper.insert(cloneIgnoreId(dbFormulaRecord, o -> o.setCreateTime(null)));
// 准备参数
FormulaRecordPageReqVO reqVO = new FormulaRecordPageReqVO();
reqVO.setMachineName(null);
reqVO.setWorkerName(null);
reqVO.setResultType(null);
reqVO.setFormulaCode(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
PageResult<FormulaRecordDO> pageResult = formulaRecordService.getFormulaRecordPage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
assertPojoEquals(dbFormulaRecord, pageResult.getList().get(0));
}
}

@ -0,0 +1,153 @@
package cn.iocoder.yudao.module.iot.service.mqttrecord;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord.MqttRecordMapper;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/**
* {@link MqttRecordServiceImpl}
*
* @author
*/
@Import(MqttRecordServiceImpl.class)
public class MqttRecordServiceImplTest extends BaseDbUnitTest {
@Resource
private MqttRecordServiceImpl mqttRecordService;
@Resource
private MqttRecordMapper mqttRecordMapper;
@Test
public void testCreateMqttRecord_success() {
// 准备参数
MqttRecordSaveReqVO createReqVO = randomPojo(MqttRecordSaveReqVO.class).setId(null);
// 调用
Long mqttRecordId = mqttRecordService.createMqttRecord(createReqVO);
// 断言
assertNotNull(mqttRecordId);
// 校验记录的属性是否正确
MqttRecordDO mqttRecord = mqttRecordMapper.selectById(mqttRecordId);
assertPojoEquals(createReqVO, mqttRecord, "id");
}
@Test
public void testUpdateMqttRecord_success() {
// mock 数据
MqttRecordDO dbMqttRecord = randomPojo(MqttRecordDO.class);
mqttRecordMapper.insert(dbMqttRecord);// @Sql: 先插入出一条存在的数据
// 准备参数
MqttRecordSaveReqVO updateReqVO = randomPojo(MqttRecordSaveReqVO.class, o -> {
o.setId(dbMqttRecord.getId()); // 设置更新的 ID
});
// 调用
mqttRecordService.updateMqttRecord(updateReqVO);
// 校验是否更新正确
MqttRecordDO mqttRecord = mqttRecordMapper.selectById(updateReqVO.getId()); // 获取最新的
assertPojoEquals(updateReqVO, mqttRecord);
}
@Test
public void testUpdateMqttRecord_notExists() {
// 准备参数
MqttRecordSaveReqVO updateReqVO = randomPojo(MqttRecordSaveReqVO.class);
// 调用, 并断言异常
assertServiceException(() -> mqttRecordService.updateMqttRecord(updateReqVO), MQTT_RECORD_NOT_EXISTS);
}
@Test
public void testDeleteMqttRecord_success() {
// mock 数据
MqttRecordDO dbMqttRecord = randomPojo(MqttRecordDO.class);
mqttRecordMapper.insert(dbMqttRecord);// @Sql: 先插入出一条存在的数据
// 准备参数
Long id = dbMqttRecord.getId();
// 调用
mqttRecordService.deleteMqttRecord(id);
// 校验数据不存在了
assertNull(mqttRecordMapper.selectById(id));
}
@Test
public void testDeleteMqttRecord_notExists() {
// 准备参数
Long id = randomLongId();
// 调用, 并断言异常
assertServiceException(() -> mqttRecordService.deleteMqttRecord(id), MQTT_RECORD_NOT_EXISTS);
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetMqttRecordPage() {
// mock 数据
MqttRecordDO dbMqttRecord = randomPojo(MqttRecordDO.class, o -> { // 等会查询到
o.setMachineName(null);
o.setDeviceDataTime(null);
o.setDeviceData(null);
o.setDeviceCode(null);
o.setDeviceName(null);
o.setWorkerName(null);
o.setGatewayCode(null);
o.setCreateTime(null);
});
mqttRecordMapper.insert(dbMqttRecord);
// 测试 machineName 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setMachineName(null)));
// 测试 deviceDataTime 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setDeviceDataTime(null)));
// 测试 deviceData 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setDeviceData(null)));
// 测试 deviceCode 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setDeviceCode(null)));
// 测试 deviceName 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setDeviceName(null)));
// 测试 workerName 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setWorkerName(null)));
// 测试 gatewayCode 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setGatewayCode(null)));
// 测试 createTime 不匹配
mqttRecordMapper.insert(cloneIgnoreId(dbMqttRecord, o -> o.setCreateTime(null)));
// 准备参数
MqttRecordPageReqVO reqVO = new MqttRecordPageReqVO();
reqVO.setMachineName(null);
reqVO.setDeviceDataTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setDeviceData(null);
reqVO.setDeviceCode(null);
reqVO.setDeviceName(null);
reqVO.setWorkerName(null);
reqVO.setGatewayCode(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
PageResult<MqttRecordDO> pageResult = mqttRecordService.getMqttRecordPage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
assertPojoEquals(dbMqttRecord, pageResult.getList().get(0));
}
}

@ -18,3 +18,9 @@ DELETE FROM "iot_gateway";
DELETE FROM "iot_iot_organization";
-- 将该删表 SQL 语句,添加到 yudao-module-iot-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "iot_kanban";
-- 将该删表 SQL 语句,添加到 yudao-module-iot-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "iot_formula_record";
-- 将该删表 SQL 语句,添加到 yudao-module-iot-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "iot_mqtt_record";

@ -42,6 +42,7 @@ CREATE TABLE IF NOT EXISTS "iot_formula"
"name" varchar,
"formula_code" varchar,
"formula" varchar,
"data_unit" varchar,
"result_type" varchar,
"machine_id" bigint NOT NULL,
"remark" varchar,
@ -155,7 +156,7 @@ CREATE TABLE IF NOT EXISTS "iot_iot_organization"
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint ,
"tenant_id" bigint,
"name" varchar NOT NULL,
"parent_id" bigint NOT NULL,
"status" int,
@ -170,7 +171,7 @@ CREATE TABLE IF NOT EXISTS "iot_kanban"
"code" varchar NOT NULL,
"title" varchar NOT NULL,
"view_url" varchar,
"tags" varchar,
"tags" varchar,
"img" varchar,
"remark" varchar,
"is_enable" bit NOT NULL,
@ -182,5 +183,46 @@ CREATE TABLE IF NOT EXISTS "iot_kanban"
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '物联看板';
CREATE TABLE IF NOT EXISTS "iot_formula_record"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"machine_id" bigint NOT NULL,
"machine_name" varchar,
"worker_id" bigint,
"worker_name" varchar,
"result_type" varchar,
"formula_id" bigint NOT NULL,
"formula_code" varchar,
"data_value" varchar,
"data_unit" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '变量记录';
CREATE TABLE IF NOT EXISTS "iot_mqtt_record"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"machine_id" bigint NOT NULL,
"machine_name" varchar,
"device_data_time" varchar NOT NULL,
"device_data" varchar,
"device_id" bigint NOT NULL,
"device_code" varchar,
"device_name" varchar,
"worker_id" bigint,
"worker_name" varchar,
"gateway_code" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '数采记录';

Loading…
Cancel
Save