Files
railwaysystem/RuoYi-Vue/sql/train/v2/019_signage.sql
T

64 lines
3.5 KiB
SQL
Raw 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.
-- ============================================================
-- 019_signage.sql (MySQL 5.7)
-- 电子班牌取数接口(/api/board/v1/signageService/*)所需补充表与字段
-- 配合 TrainBoardApiController + TrainSignageMapper 使用。
-- 说明:仅 ADD COLUMN / CREATE TABLE / 测试种子。
-- 前置:train_student / train_classroom_info / train_class_plan /
-- train_lesson / train_plan_course / train_course / train_enrollment /
-- train_teacher 已存在(V2 基线 000 / 002)。
-- 注意:MySQL 5.7 不支持 ALTER TABLE ADD COLUMN IF NOT EXISTS,
-- 下面用临时存储过程做幂等判断;CREATE TABLE 用 IF NOT EXISTS(5.7 支持)。
-- ============================================================
-- 1) 学员卡号(刷卡校验用,train_student 无此列,需补列)
DROP PROCEDURE IF EXISTS tmp_add_card_no;
DELIMITER $$
CREATE PROCEDURE tmp_add_card_no()
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'train_student'
AND column_name = 'card_no'
) THEN
ALTER TABLE train_student
ADD COLUMN card_no VARCHAR(32) DEFAULT NULL COMMENT '学员卡号(刷卡校验用)';
END IF;
END$$
DELIMITER ;
CALL tmp_add_card_no();
DROP PROCEDURE IF EXISTS tmp_add_card_no;
-- 2) 座位分配表(接口3 studentInClassroom 所需,原库无座位表)
CREATE TABLE IF NOT EXISTS train_class_seat (
seat_id BIGINT NOT NULL AUTO_INCREMENT,
plan_id VARCHAR(32) NOT NULL COMMENT '班级ID(train_class_plan.plan_id)',
classroom_id VARCHAR(32) NOT NULL COMMENT '教室ID(train_classroom_info.class_room_id)',
row_index INT NOT NULL COMMENT '行号,从1开始',
col_index INT NOT NULL COMMENT '列号,从1开始',
seat_code VARCHAR(32) DEFAULT NULL COMMENT '物理座位标识',
canceled SMALLINT NOT NULL DEFAULT 0 COMMENT '是否取消位置(0正常,1取消)',
student_id VARCHAR(32) DEFAULT NULL COMMENT '占用座位学员ID(train_student.s_id)',
zone_id BIGINT DEFAULT NULL COMMENT '区域ID',
dept_detail VARCHAR(100) DEFAULT NULL COMMENT '部门',
job VARCHAR(100) DEFAULT NULL COMMENT '职务',
create_by VARCHAR(64) DEFAULT NULL,
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_by VARCHAR(64) DEFAULT NULL,
update_time TIMESTAMP NULL DEFAULT NULL,
remark VARCHAR(500) DEFAULT NULL,
PRIMARY KEY (seat_id),
UNIQUE KEY uq_class_seat_pos (plan_id, classroom_id, row_index, col_index)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班级在指定教室的座位分配表(电子班牌座位网格来源)';
-- 3) 测试种子:为 018 的学员 S20260001 设置卡号(文档示例值)
UPDATE train_student SET card_no = '0514457515' WHERE s_id = 'S20260001';
-- 4) 测试种子:P2026001 在教室 CR-001 的座位布局
DELETE FROM train_class_seat WHERE plan_id = 'P2026001' AND classroom_id = 'CR-001';
INSERT INTO train_class_seat (plan_id, classroom_id, row_index, col_index, seat_code, canceled, student_id, zone_id, dept_detail, job)
VALUES
('P2026001', 'CR-001', 1, 1, '1-1', 0, 'S20260001', 100, '培训部', '学员'),
('P2026001', 'CR-001', 1, 2, '1-2', 0, NULL, 100, NULL, NULL),
('P2026001', 'CR-001', 2, 1, '2-1', 1, NULL, 100, NULL, NULL);