日报2025415

今日继续进行团队项目作业
今日完成了数据库的查询语句语法纠正、查询语句的注释、示例测试数据的编写

-- 用户表:users
CREATE TABLE users (
    id VARCHAR(8) PRIMARY KEY NOT NULL,              -- 工号 主键
    username VARCHAR(50) NOT NULL UNIQUE,            -- 姓名
    phone VARCHAR(20) NOT NULL UNIQUE,               -- 电话
    email VARCHAR(100) NOT NULL UNIQUE,              -- 邮箱
    password VARCHAR(255) NOT NULL,                  -- 密码
    role ENUM('engineer', 'admin', 'super_admin') NOT NULL  -- 职位
);

-- 设备表:devices
CREATE TABLE devices (
    device_id VARCHAR(9) PRIMARY KEY NOT NULL,       -- 设备编号
    device_type VARCHAR(50) NOT NULL,                -- 设备类型
    location VARCHAR(100) NOT NULL,                  -- 设备位置
    status ENUM('正常', '故障', '维护中', '报废') DEFAULT '正常'  -- 设备状态
);

-- 设备故障表:device_faults
CREATE TABLE device_faults (
    fault_id INT PRIMARY KEY AUTO_INCREMENT,         -- 主键
    device_id VARCHAR(9) NOT NULL,                   -- 设备编号(关联 devices 表)
    fault_desc TEXT NOT NULL,                        -- 故障描述
    report_type ENUM('自主报修', '电话报修') NOT NULL,  -- 报修类型
    reported_id VARCHAR(8) NOT NULL,                 -- 报修人工号
    reported_name VARCHAR(20) NOT NULL,              -- 报修人姓名
    reported_phone VARCHAR(11) NOT NULL,             -- 报修人电话
    status ENUM('待处理', '处理中', '已解决', '已关闭') DEFAULT '待处理'  -- 状态
);

-- 维修工单表:repair_orders
CREATE TABLE repair_orders (
    orderID INT PRIMARY KEY AUTO_INCREMENT,          -- 工单编号
    fault_id INT NOT NULL,                           -- 故障编号(关联 device_faults)
    engineer_id VARCHAR(8) NOT NULL,                 -- 工程师工号(关联 users)
    repair_desc TEXT,                                -- 维修描述
    status VARCHAR(20) NOT NULL DEFAULT '待处理',    -- 工单状态
    safety_notice TEXT,                              -- 安全须知
    photos MEDIUMBLOB                                      -- 维修照片
);

-- 巡检计划表:inspection_plans
CREATE TABLE inspection_plans (
    plan_id INT PRIMARY KEY AUTO_INCREMENT,          -- 计划ID
    device_id VARCHAR(9) NOT NULL,                   -- 设备编号
    start_time DATETIME NOT NULL,                    -- 开始时间
    end_time DATETIME,                               -- 结束时间
    frequency ENUM('日', '周', '月', '季度', '半年', '年') NOT NULL,  -- 巡检频率
    location VARCHAR(100)                            -- 巡检位置
);

-- 巡检工单表:inspection_orders
CREATE TABLE inspection_orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,         -- 工单ID
    plan_id INT NOT NULL,                            -- 计划ID(关联 inspection_plans)
    engineer_id VARCHAR(8) NOT NULL,                 -- 工程师工号
    inspection_desc TEXT,                            -- 巡检描述
    status ENUM('待处理', '处理中', '已完成', '已关闭') DEFAULT '待处理',  -- 状态
    photos MEDIUMBLOB                                      -- 巡检照片
);

-- 保养计划表:maintenance_plans
CREATE TABLE maintenance_plans (
    plan_id INT PRIMARY KEY AUTO_INCREMENT,          -- 计划ID
    device_id VARCHAR(9) NOT NULL,                   -- 设备编号
    start_time DATETIME NOT NULL,                    -- 开始时间
    end_time DATETIME,                               -- 结束时间
    frequency ENUM('月', '季度', '半年', '年') NOT NULL,  -- 保养频率
    checklist MEDIUMBLOB                                   -- 保养清单
);

-- 保养工单表:maintenance_orders
CREATE TABLE maintenance_orders (
    work_order_id INT PRIMARY KEY AUTO_INCREMENT,    -- 工单ID
    plan_id INT,                                    -- 计划ID
    engineer_id VARCHAR(8) NOT NULL,                -- 工程师工号
    maintenance_desc TEXT,                          -- 保养描述
    status ENUM('待处理', '处理中', '已完成', '已关闭') DEFAULT '待处理',  -- 状态
    before_photos MEDIUMBLOB,                             -- 保养前照片
    after_photos MEDIUMBLOB                               -- 保养后照片
);

-- 检测计划表:testing_plans
CREATE TABLE testing_plans (
    plan_id INT PRIMARY KEY AUTO_INCREMENT,         -- 计划ID
    device_id VARCHAR(9) NOT NULL,                  -- 设备编号
    start_time DATETIME NOT NULL,                   -- 开始时间
    end_time DATETIME,                              -- 结束时间
    frequency ENUM('月', '季度', '半年', '年') NOT NULL,  -- 检测频率
    location VARCHAR(100) NOT NULL                 -- 检测位置
);

-- 检测工单表:testing_orders
CREATE TABLE testing_orders (
    work_order_id INT PRIMARY KEY AUTO_INCREMENT,   -- 工单ID
    plan_id INT,                                   -- 计划ID
    engineer_id VARCHAR(8) NOT NULL,               -- 工程师工号
    testing_desc TEXT,                             -- 检测描述
    status ENUM('待处理', '处理中', '已完成', '已关闭') DEFAULT '待处理',  -- 状态
    photos MEDIUMBLOB                                    -- 检测照片
);




--数据
INSERT INTO users (id, username, phone, email, password, role) VALUES
-- 工程师
('E001',
('E002',
-- 管理人员
('M001',
-- 监控调度中心人员
('C001',

INSERT INTO devices (device_id, device_type, location, status) VALUES
-- 消防设备
('FIRE001', '消防喷淋系统', 'B1层消防通道', '正常'),
('FIRE002', '烟雾报警器', '3楼走廊', '正常'),
-- 电梯设备
('ELEV001', '客梯', '1号楼大厅', '正常'),
('ELEV002', '货梯', '2号楼仓库', '故障'),
-- 机电设备
('MECH001', '中央空调主机', '地下机房', '维护中');

INSERT INTO device_faults (device_id, fault_desc, report_type, reported_id, reported_name, reported_phone, status) VALUES
-- 管理人员自主报修(电梯故障)
('ELEV002', '货梯门无法关闭,蜂鸣器报警', '自主报修', 'M001', '王五', '13800003333', '待处理'),
-- 监控调度中心电话报修(消防设备)
('FIRE001', '喷淋系统水压异常', '电话报修', 'C001', '赵六', '13800004444', '处理中');
	
	INSERT INTO repair_orders (fault_id, engineer_id, repair_desc, status, photos) VALUES
-- 电梯维修工单(需安全确认)
(1, 'E001', '更换电梯门传感器,测试正常', '已解决', 
  NULL),
-- 消防设备维修工单(照片审核失败)
(2, 'E002', '调整水压阀门', '处理中', 
  NULL);
	
	INSERT INTO inspection_plans (device_id, start_time, end_time, frequency, location) VALUES
-- 电梯日检计划(电子围栏停留2分钟)
('ELEV001', '2023-10-01 08:00:00', '2023-12-31 18:00:00', '日', '1号楼大厅'),
-- 消防设备季度巡检
('FIRE001', '2023-10-01 09:00:00', NULL, '季度', 'B1层消防通道');


INSERT INTO inspection_orders (plan_id, engineer_id, inspection_desc, status, photos) VALUES
-- 电梯日检完成(位置已验证)
(1, 'E001', '检查电梯运行平稳度,测试紧急按钮', '已完成', 
  NULL),
-- 消防设备巡检待处理
(2, 'E002', NULL, '待处理', NULL);

INSERT INTO maintenance_plans (device_id, start_time, end_time, frequency, checklist) VALUES
-- 空调主机季度保养
('MECH001', '2023-10-10 09:00:00', '2023-12-31 17:00:00', '季度', 
  NULL),
-- 货梯月度保养
('ELEV002', '2023-10-05 14:00:00', NULL, '月', 
  NULL);
	
	INSERT INTO maintenance_orders (plan_id, engineer_id, maintenance_desc, status, before_photos, after_photos) VALUES
-- 空调保养已完成
(1, 'E001', '完成滤网更换和压力检测', '已完成', 
  NULL, 
  NULL),
-- 货梯保养待处理
(2, 'E002', NULL, '待处理', NULL, NULL);

INSERT INTO testing_plans (device_id, start_time, end_time, frequency, location) VALUES
-- 消防设备年检
('FIRE001', '2023-11-01 10:00:00', '2023-11-01 12:00:00', '年', 'B1层消防通道'),
-- 烟雾报警器月检
('FIRE002', '2023-10-01 09:00:00', NULL, '月', '3楼走廊');

INSERT INTO testing_orders (plan_id, engineer_id, testing_desc, status, photos) VALUES
-- 消防设备检测超时(触发通知)
(1, 'E001', '水压测试通过', '处理中', 
  NULL),
-- 烟雾报警器检测正常
(2, 'E002', '灵敏度测试达标', '已完成', 
  NULL);

遇到的问题
在编写测试数据时不清楚怎么将图片数据以JSON的方式上传到数据库中
解决方法
将图片存储形式改为更适合的存储类型MEDIUMBLOB,然后将测试数据中图片对象设置为暂空后续处理

posted @ 2025-04-15 20:56  花落水无痕  阅读(39)  评论(0)    收藏  举报