Files
his/sql/迁移记录-DB变更记录/20250106_insert_test_data_dept_appointment_hours.sql

668 lines
13 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================
-- 科室预约工作时间维护 - 字段修改及测试数据
-- 生成日期: 2025-01-06
-- 说明: 字段统一命名 + 基于系统科室管理生成测试数据
-- ============================================
-- ============================================
-- 第一步:修改表结构(如果尚未执行)
-- ============================================
-- 1. 添加新字段
ALTER TABLE dept_appointment_hours ADD COLUMN IF NOT EXISTS institution VARCHAR(100);
ALTER TABLE dept_appointment_hours ADD COLUMN IF NOT EXISTS department VARCHAR(100);
ALTER TABLE dept_appointment_hours ADD COLUMN IF NOT EXISTS quota INTEGER;
ALTER TABLE dept_appointment_hours ADD COLUMN IF NOT EXISTS operator VARCHAR(50);
ALTER TABLE dept_appointment_hours ADD COLUMN IF NOT EXISTS created_time TIMESTAMP;
ALTER TABLE dept_appointment_hours ADD COLUMN IF NOT EXISTS updated_time TIMESTAMP;
-- 2. 将旧字段数据复制到新字段
UPDATE dept_appointment_hours SET institution = institution_name WHERE institution IS NULL AND institution_name IS NOT NULL;
UPDATE dept_appointment_hours SET department = dept_name WHERE department IS NULL AND dept_name IS NOT NULL;
UPDATE dept_appointment_hours SET quota = limit_count WHERE quota IS NULL AND limit_count IS NOT NULL;
UPDATE dept_appointment_hours SET operator = create_by WHERE operator IS NULL AND create_by IS NOT NULL;
UPDATE dept_appointment_hours SET created_time = create_time WHERE created_time IS NULL AND create_time IS NOT NULL;
UPDATE dept_appointment_hours SET updated_time = update_time WHERE updated_time IS NULL AND update_time IS NOT NULL;
-- 3. 删除旧字段
ALTER TABLE dept_appointment_hours DROP COLUMN IF EXISTS institution_name;
ALTER TABLE dept_appointment_hours DROP COLUMN IF EXISTS dept_name;
ALTER TABLE dept_appointment_hours DROP COLUMN IF EXISTS limit_count;
ALTER TABLE dept_appointment_hours DROP COLUMN IF EXISTS create_by;
ALTER TABLE dept_appointment_hours DROP COLUMN IF EXISTS create_time;
ALTER TABLE dept_appointment_hours DROP COLUMN IF EXISTS update_time;
-- 4. 重置序列使id从1开始
SELECT setval('dept_appointment_hours_id_seq', 1, false);
-- ============================================
-- 第二步:更新列注释
-- ============================================
COMMENT ON COLUMN dept_appointment_hours.institution IS '所属机构';
COMMENT ON COLUMN dept_appointment_hours.department IS '科室名称';
COMMENT ON COLUMN dept_appointment_hours.morning_start IS '上午开始时间';
COMMENT ON COLUMN dept_appointment_hours.morning_end IS '上午结束时间';
COMMENT ON COLUMN dept_appointment_hours.afternoon_start IS '下午开始时间';
COMMENT ON COLUMN dept_appointment_hours.afternoon_end IS '下午结束时间';
COMMENT ON COLUMN dept_appointment_hours.quota IS '限号数量';
COMMENT ON COLUMN dept_appointment_hours.operator IS '操作人';
COMMENT ON COLUMN dept_appointment_hours.created_time IS '创建时间';
COMMENT ON COLUMN dept_appointment_hours.updated_time IS '更新时间';
-- ============================================
-- 第三步:清空现有数据并插入测试数据
-- ============================================
-- 清空表数据(如果需要保留现有数据,请注释此行)
TRUNCATE TABLE dept_appointment_hours RESTART IDENTITY;
-- ============================================
-- 插入测试数据 - 基于系统管理-基础数据-科室管理中的科室
-- ============================================
-- 1. 内科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'内科门诊',
'08:00',
'12:00',
'14:00',
'17:30',
80,
'admin',
NOW()
);
-- 2. 外科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'外科门诊',
'08:00',
'12:00',
'14:00',
'17:30',
60,
'admin',
NOW()
);
-- 3. 妇产科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'妇产科门诊',
'08:30',
'12:00',
'14:00',
'17:30',
50,
'admin',
NOW()
);
-- 4. 儿科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'儿科门诊',
'08:00',
'12:00',
'14:30',
'17:30',
70,
'admin',
NOW()
);
-- 5. 眼科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'眼科门诊',
'08:30',
'11:30',
'14:00',
'17:00',
40,
'admin',
NOW()
);
-- 6. 耳鼻喉科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'耳鼻喉科门诊',
'08:30',
'12:00',
'14:00',
'17:00',
45,
'admin',
NOW()
);
-- 7. 口腔科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'口腔科门诊',
'08:00',
'11:30',
'14:00',
'17:00',
35,
'admin',
NOW()
);
-- 8. 皮肤科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'皮肤科门诊',
'08:30',
'12:00',
'14:00',
'17:30',
55,
'admin',
NOW()
);
-- 9. 中医科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'中医科门诊',
'08:00',
'12:00',
'14:00',
'17:00',
40,
'admin',
NOW()
);
-- 10. 心内科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'心内科门诊',
'08:00',
'11:30',
'14:00',
'17:00',
50,
'admin',
NOW()
);
-- 11. 神经内科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'神经内科门诊',
'08:30',
'12:00',
'14:00',
'17:00',
45,
'admin',
NOW()
);
-- 12. 呼吸科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'呼吸科门诊',
'08:00',
'12:00',
'14:00',
'17:30',
55,
'admin',
NOW()
);
-- 13. 消化内科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'消化内科门诊',
'08:30',
'12:00',
'14:00',
'17:00',
50,
'admin',
NOW()
);
-- 14. 骨科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'骨科门诊',
'08:00',
'12:00',
'14:00',
'17:00',
45,
'admin',
NOW()
);
-- 15. 泌尿外科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'泌尿外科门诊',
'08:30',
'12:00',
'14:00',
'17:00',
40,
'admin',
NOW()
);
-- 16. 精神科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'精神科门诊',
'09:00',
'12:00',
'14:00',
'17:00',
30,
'admin',
NOW()
);
-- 17. 感染科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'感染科门诊',
'08:00',
'12:00',
'14:00',
'17:30',
50,
'admin',
NOW()
);
-- 18. 急诊科
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'急诊科',
'00:00',
'23:59',
'00:00',
'23:59',
100,
'admin',
NOW()
);
-- 19. 康复科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'康复科门诊',
'08:00',
'12:00',
'14:00',
'17:00',
35,
'admin',
NOW()
);
-- 20. 体检中心
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'体检中心',
'07:30',
'12:00',
'14:00',
'17:30',
100,
'admin',
NOW()
);
-- 21. 血液科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'血液科门诊',
'08:30',
'12:00',
'14:00',
'17:00',
35,
'admin',
NOW()
);
-- 22. 内分泌科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'内分泌科门诊',
'08:00',
'12:00',
'14:00',
'17:00',
45,
'admin',
NOW()
);
-- 23. 普外科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'普外科门诊',
'08:00',
'12:00',
'14:00',
'17:30',
55,
'admin',
NOW()
);
-- 24. 神经外科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'神经外科门诊',
'08:30',
'12:00',
'14:00',
'17:00',
40,
'admin',
NOW()
);
-- 25. 烧伤科门诊
INSERT INTO dept_appointment_hours (
institution,
department,
morning_start,
morning_end,
afternoon_start,
afternoon_end,
quota,
operator,
created_time
) VALUES (
'演示医院',
'烧伤科门诊',
'08:00',
'12:00',
'14:00',
'17:00',
30,
'admin',
NOW()
);
-- ============================================
-- 验证插入的数据
-- ============================================
SELECT
id,
institution AS "所属机构",
department AS "科室名称",
morning_start AS "上午开始",
morning_end AS "上午结束",
afternoon_start AS "下午开始",
afternoon_end AS "下午结束",
quota AS "限号数量",
operator AS "操作人",
created_time AS "创建时间"
FROM dept_appointment_hours
ORDER BY id;
-- 统计总记录数
SELECT
COUNT(*) AS "总记录数"
FROM dept_appointment_hours;
-- 按科室统计
SELECT
department AS "科室",
COUNT(*) AS "数量"
FROM dept_appointment_hours
GROUP BY department
ORDER BY "数量" DESC;