Quellcode durchsuchen

Merge remote-tracking branch 'origin/dev' into dev

phoenix vor 1 Jahr
Ursprung
Commit
c7eff628ef

+ 739 - 0
src/main/resources/sqlScript/20231218_sql.sql

@@ -0,0 +1,739 @@
+-- ------------------------------------------------------------------考勤打卡--------------------------------------------------------------------
+-- ----------------------------
+-- 考勤-人员
+-- ----------------------------
+DROP TABLE IF EXISTS attendance_personnel;
+CREATE TABLE attendance_personnel
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `user_id` bigint NULL DEFAULT NULL COMMENT '用户编号',
+    PRIMARY KEY (`id`),
+    unique key `only`(`user_id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '考勤-人员';
+
+-- ----------------------------
+-- 考勤-配置
+-- ----------------------------
+DROP TABLE IF EXISTS attendance_config;
+CREATE TABLE attendance_config
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `attendance_time` time NULL DEFAULT NULL COMMENT '考勤时间',
+    `leave_reason`varchar(20) NULL DEFAULT NULL COMMENT '考勤节点(xjr_dictionary_item[attendance_node])',
+    `address` varchar(1000) NULL DEFAULT NULL COMMENT '地点',
+    `longitude` double NULL DEFAULT NULL COMMENT '经度',
+    `latitude` double NULL DEFAULT NULL COMMENT '纬度',
+    `attendance_range` int NULL DEFAULT NULL COMMENT '范围(米)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '考勤-配置';
+
+-- ----------------------------
+-- 考勤-记录
+-- ----------------------------
+DROP TABLE IF EXISTS attendance_record;
+CREATE TABLE attendance_record
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `user_id` bigint NULL DEFAULT NULL COMMENT '用户编号',
+    `attendance_time` time NULL DEFAULT NULL COMMENT '考勤时间',
+    `check_time` datetime NULL DEFAULT NULL COMMENT '打卡时间',
+    `leave_reason`varchar(20) NULL DEFAULT NULL COMMENT '考勤节点(xjr_dictionary_item[attendance_node])',
+    `address` varchar(1000) NULL DEFAULT NULL COMMENT '地点',
+    `longitude` double NULL DEFAULT NULL COMMENT '经度',
+    `latitude` double NULL DEFAULT NULL COMMENT '纬度',
+    `distance` double NULL DEFAULT NULL COMMENT '距离(米)',
+    `status` int not null default 1 COMMENT '状态(1:正常 2:迟到 3:未打卡)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '考勤-记录';
+-- ------------------------------------------------------------------考勤打卡--------------------------------------------------------------------
+
+-- ----------------------------
+-- 班主任事项请假
+-- ----------------------------
+DROP TABLE IF EXISTS wf_head_teacher_leave;
+CREATE TABLE wf_head_teacher_leave
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `wf_teacherleave_id` bigint NULL DEFAULT NULL COMMENT '教职工请假编号',
+    `applicant_user_id` bigint NULL DEFAULT NULL COMMENT '申请人',
+    `leave_reason`varchar(20) NULL DEFAULT NULL COMMENT '请假原因(xjr_dictionary_item[leave_reason])',
+    `start_time` date NULL DEFAULT NULL COMMENT '开始时间',
+    `end_time` date NULL DEFAULT NULL COMMENT '结束时间',
+    `is_substitute` INT NOT NULL default 0 COMMENT '是否有替班教师(1:是 0:否)',
+    `substitute_user_id` bigint NULL DEFAULT NULL COMMENT '替换教师',
+    `remark` varchar(1000) COMMENT '备注',
+    `status` int not null default 0 COMMENT '状态(1:结束 0:未结束)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '班主任事项请假';
+
+-- ------------------------------------------------------------------学生干部--------------------------------------------------------------------
+
+-- ----------------------------
+-- 干部部门
+-- ----------------------------
+DROP TABLE IF EXISTS cadre_dept;
+CREATE TABLE cadre_dept
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '机构名称',
+    `parent_id` bigint NOT NULL COMMENT '部门上级编号',
+    `instructor_user_id` bigint NULL DEFAULT NULL COMMENT '部门指导教师用户编号',
+    `code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '编码',
+    `remark` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '干部部门';
+
+
+-- ----------------------------
+-- 干部候选人
+-- ----------------------------
+DROP TABLE IF EXISTS wf_cadre_candidate;
+CREATE TABLE wf_cadre_candidate
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `applicant_user_id` bigint NULL DEFAULT NULL COMMENT '申请人',
+    `student_id` VARCHAR(30) NULL DEFAULT NULL COMMENT '学号',
+    `applicant_time` date NULL DEFAULT NULL COMMENT '申请时间',
+    `cadre_dept_id` bigint NULL DEFAULT NULL COMMENT '干部部门编号',
+    `class_name` VARCHAR(200) NULL DEFAULT NULL COMMENT '班级名称',
+    `instructor_user_id`  bigint NULL DEFAULT NULL COMMENT '部门指导教师用户编号',
+    `remark` varchar(1000) COMMENT '备注',
+    `status` int not null default 0 COMMENT '状态(1:结束 0:未结束)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '干部候选人';
+
+
+-- ----------------------------
+-- 学生干部管理
+-- ----------------------------
+DROP TABLE IF EXISTS base_student_cadre;
+CREATE TABLE base_student_cadre
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `user_id` BIGINT NULL DEFAULT NULL COMMENT '学生id',
+    `class_id` BIGINT NULL DEFAULT NULL COMMENT '班级id',
+    `post_id` BIGINT NULL DEFAULT NULL COMMENT '职务id',
+    `cadre_dept_id` bigint NULL DEFAULT NULL COMMENT '干部部门编号',
+    `start_time` DATE NULL DEFAULT NULL COMMENT '任职开始时间',
+    `end_time` DATE NULL DEFAULT NULL COMMENT '任职结束时间',
+    `status` INT NOT NULL COMMENT '状态(1:在职 0:离职)',
+    `leave_time` DATE NULL DEFAULT NULL COMMENT '离职生效日期',
+    `leave_reason` VARCHAR(500) NULL DEFAULT NULL COMMENT '离职原因',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生干部管理';
+
+-- ------------------------------------------------------------------学生干部--------------------------------------------------------------------
+
+-- ----------------------------
+-- 教职工离职
+-- ----------------------------
+DROP TABLE IF EXISTS wf_teacher_depart;
+CREATE TABLE wf_teacher_depart
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `applicant_user_id` bigint NULL DEFAULT NULL COMMENT '申请人',
+    `sex` varchar(10) not null default '' COMMENT '性别 男, 女',
+    `dept_name` varchar(100) not null default '' COMMENT '部门名称',
+    `nature_organization` varchar(100) not null default '' COMMENT '编制性质(编内、编外)',
+    `is_union_member` varchar(20) NULL DEFAULT NULL COMMENT '是否工会会员(xjr_dictionary_item[judgment_method_1])',
+    `job` varchar(20) NULL DEFAULT NULL COMMENT '工作岗位(xjr_dictionary_item[depart_post])',
+    `is_head_teacher` varchar(20) NULL DEFAULT NULL COMMENT '是否班主任(xjr_dictionary_item[judgment_method_1])',
+    `h_pd_office_key` varchar(100) NULL DEFAULT NULL COMMENT '专业部-办公室钥匙移交(已交接、未交接、未借用)',
+    `h_pd_facilities` varchar(100) NULL DEFAULT NULL COMMENT '专业部-教具、设施等移交(已交接、未交接、未借用)',
+    `h_pd_other` varchar(1000) NULL DEFAULT NULL COMMENT '专业部-其它',
+
+    `h_do_books` varchar(100) NULL DEFAULT NULL COMMENT '教务处-借阅图书归还(已交接、未交接、未借用)',
+    `h_do_classroom_key` varchar(100) NULL DEFAULT NULL COMMENT '教务处-借用教室钥匙(已交接、未交接、未借用)',
+    `h_do_other` varchar(1000) NULL DEFAULT NULL COMMENT '教务处-其它',
+
+    `h_me_military_uniform` varchar(100) NULL DEFAULT NULL COMMENT '德育处-借用军训服装(已交接、未交接、未借用)',
+    `h_me_other` varchar(1000) NULL DEFAULT NULL COMMENT '德育处-其它',
+
+    `h_fl_computer` varchar(100) NULL DEFAULT NULL COMMENT '财务后勤处-办公电脑(已交接、未交接、未借用)',
+
+    `h_sd_other` varchar(1000) NULL DEFAULT NULL COMMENT '安保处-其它',
+
+    `file_id` BIGINT NULL DEFAULT NULL COMMENT '附件文件id',
+    `status` int not null default 0 COMMENT '状态(1:结束 0:未结束)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教职工离职';
+
+-- ------------------------------------------------------------------教材管理--------------------------------------------------------------------
+-- ----------------------------
+-- 学科组管理
+-- ----------------------------
+DROP TABLE IF EXISTS subject_group;
+CREATE TABLE subject_group
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `group_name` varchar(100) not null default '' COMMENT '组名',
+    `leader_user_id` bigint NULL DEFAULT NULL COMMENT '组长用户编号',
+    `remark` varchar(1000) COMMENT '备注',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学科组管理';
+
+-- ----------------------------
+-- 学科组课程
+-- ----------------------------
+DROP TABLE IF EXISTS subject_group_course;
+CREATE TABLE subject_group_course
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `subject_group_id` bigint NULL COMMENT '学科组管理编号(subject_group)',
+    `course_subject_id` bigint NULL COMMENT '课程编号(base_course_subject)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学科组管理';
+
+-- ----------------------------
+-- 教材教辅征订
+-- ----------------------------
+DROP TABLE IF EXISTS wf_textbook_subscription;
+CREATE TABLE wf_textbook_subscription
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `applicant_user_id` bigint NULL DEFAULT NULL COMMENT '申请人',
+    `dept_id` bigint NULL DEFAULT NULL COMMENT '所在部门编号',
+    `base_semester_id` bigint COMMENT '学期ID(base_semester)',
+    `subject_group_id` bigint NULL COMMENT '学科组管理编号(subject_group)',
+    `remark` varchar(1000) COMMENT '备注',
+    `status` int not null default 0 COMMENT '状态(1:结束 0:未结束)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材教辅征订';
+
+-- ----------------------------
+-- 教材教辅征订项
+-- ----------------------------
+DROP TABLE IF EXISTS wf_textbook_subscription_item;
+CREATE TABLE wf_textbook_subscription_item
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `wf_textbook_subscription_id` bigint NULL DEFAULT NULL COMMENT '教材教辅征订编号',
+    `subscription_type` varchar(20) NULL DEFAULT NULL COMMENT '征订类型(xjr_dictionary_item[subscription_type])',
+    `issn` varchar(200) NULL DEFAULT NULL COMMENT '国际标准刊号',
+    `isbn` varchar(200) NULL DEFAULT NULL COMMENT '国际标准书号',
+    `book_name` varchar(200) NULL DEFAULT NULL COMMENT '书名',
+    `publishing_house` varchar(200) NULL DEFAULT NULL COMMENT '出版社',
+    `editor_in_chief` varchar(200) NULL DEFAULT NULL COMMENT '主编',
+    `appraisal_price` decimal(10,2) NULL DEFAULT NULL COMMENT '估价(元)',
+    `is_textbook_plan` varchar(20) NULL DEFAULT NULL COMMENT '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
+    `course_subject_id` bigint NULL COMMENT '课程编号(base_course_subject)',
+    `class_ids` varchar(1000) NULL DEFAULT NULL COMMENT '班级编号(多个)',
+    `student_subscription_number` int NULL DEFAULT NULL COMMENT '学生用书征订数量',
+    `teacher_subscription_number` int NULL DEFAULT NULL COMMENT '教师教材征订数量',
+    `teacher_reference_number` int NULL DEFAULT NULL COMMENT '教师教参用书征订数量',
+    `is_support_resources` varchar(20) NULL DEFAULT NULL COMMENT '是否有配套教学资源(xjr_dictionary_item[judgment_method_1])',
+    `version` varchar(100) NULL DEFAULT NULL COMMENT '版本',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材教辅征订项';
+
+-- ----------------------------
+-- 作业本征订
+-- ----------------------------
+DROP TABLE IF EXISTS wf_exercise_book;
+CREATE TABLE wf_exercise_book
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `applicant_user_id` bigint NULL DEFAULT NULL COMMENT '申请人',
+    `class_id` bigint NULL DEFAULT NULL COMMENT '班级编号',
+    `base_semester_id` bigint COMMENT '学期ID(base_semester)',
+    `remark` varchar(1000) COMMENT '备注',
+    `status` int not null default 0 COMMENT '状态(1:结束 0:未结束)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '作业本征订';
+
+-- ----------------------------
+-- 作业本征订项
+-- ----------------------------
+DROP TABLE IF EXISTS wf_exercise_book_item;
+CREATE TABLE wf_exercise_book_item
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `wf_exercise_book_id` bigint NULL DEFAULT NULL COMMENT '作业本征订编号',
+    `subscription_type` varchar(20) NULL DEFAULT NULL COMMENT '作业本征订类型(xjr_dictionary_item[exercise_book_type])',
+    `specifications_models` varchar(100) NULL DEFAULT NULL COMMENT '规格型号',
+    `appraisal_price` decimal(10,2) NULL DEFAULT NULL COMMENT '估价(元)',
+    `subscription_number` int NULL DEFAULT NULL COMMENT '征订数量',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '作业本征订项';
+
+-- ----------------------------
+-- 教材管理
+-- ----------------------------
+DROP TABLE IF EXISTS textbook;
+CREATE TABLE textbook
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `issn` varchar(200) NULL DEFAULT NULL COMMENT '国际标准刊号',
+    `isbn` varchar(200) NULL DEFAULT NULL COMMENT '国际标准书号',
+    `book_name` varchar(200) NULL DEFAULT NULL COMMENT '书名',
+    `publishing_house` varchar(200) NULL DEFAULT NULL COMMENT '出版社',
+    `editor_in_chief` varchar(200) NULL DEFAULT NULL COMMENT '主编',
+    `subject_group_id` bigint NULL COMMENT '学科组管理编号(subject_group)',
+    `base_semester_id` bigint COMMENT '学期ID(base_semester)',
+    `course_subject_id` bigint NULL COMMENT '课程编号(base_course_subject)',
+    `grade_id` bigint NULL DEFAULT NULL COMMENT '入学年级(base_grade)',
+    `version` varchar(100) NULL DEFAULT NULL COMMENT '版本',
+    `is_textbook_plan` varchar(20) NULL DEFAULT NULL COMMENT '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
+    `textbook_type` varchar(20) NULL DEFAULT NULL COMMENT '教材类型(xjr_dictionary_item[textbook_type])',
+    `specifications_models` varchar(100) NULL DEFAULT NULL COMMENT '规格型号',
+    `appraisal_price` decimal(10,2) NULL DEFAULT NULL COMMENT '估价(元)',
+    `price` decimal(10,2) NULL DEFAULT NULL COMMENT '定价(元)',
+    `discount` float NULL DEFAULT NULL COMMENT '折扣',
+    `subtotal` decimal(10,2) NULL DEFAULT NULL COMMENT '小计(元)',
+    `stock` int NULL DEFAULT NULL COMMENT '库存',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材管理';
+
+-- ----------------------------
+-- 教材征订记录
+-- ----------------------------
+DROP TABLE IF EXISTS textbook_subscription_record;
+CREATE TABLE textbook_subscription_record
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `textbook_id` bigint NULL DEFAULT NULL COMMENT '教材管理编号',
+    `wf_textbook_subscription_id` bigint NULL DEFAULT NULL COMMENT '教材教辅征订编号',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材征订记录';
+
+-- ----------------------------
+-- 教材班级引用
+-- ----------------------------
+DROP TABLE IF EXISTS textbook_class_relation;
+CREATE TABLE textbook_class_relation
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `textbook_id` bigint NULL DEFAULT NULL COMMENT '教材管理编号',
+    `class_id` bigint NULL DEFAULT NULL COMMENT '班级编号',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材班级引用';
+
+-- ----------------------------
+-- 教材入库
+-- ----------------------------
+DROP TABLE IF EXISTS textbook_class_warehouse;
+CREATE TABLE textbook_class_warehouse
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `textbook_id` bigint NULL DEFAULT NULL COMMENT '教材管理编号',
+    `warehouse_number` int NULL DEFAULT NULL COMMENT '入库数量',
+    `source` varchar(200) NULL DEFAULT NULL COMMENT '来源',
+    `price` decimal(10,2) NULL DEFAULT NULL COMMENT '定价(元)',
+    `discount` float NULL DEFAULT NULL COMMENT '折扣',
+    `subtotal` decimal(10,2) NULL DEFAULT NULL COMMENT '小计(元)',
+    `total_price` decimal(10,2) NULL DEFAULT NULL COMMENT '总价(元)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材入库';
+
+-- ----------------------------
+-- 教材申领
+-- ----------------------------
+DROP TABLE IF EXISTS wf_textbook_claim;
+CREATE TABLE wf_textbook_claim
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `applicant_user_id` bigint NULL DEFAULT NULL COMMENT '申请人',
+    `class_id` bigint NULL DEFAULT NULL COMMENT '班级编号',
+    `base_semester_id` bigint NULL DEFAULT NULL COMMENT '学期ID(base_semester)',
+    `student_user_id` bigint NULL DEFAULT NULL COMMENT '学生编号',
+    `claim_address` varchar(1000) NULL DEFAULT NULL COMMENT '领取地点',
+    `claim_type` varchar(20) NULL DEFAULT NULL COMMENT '申领类型(xjr_dictionary_item[claim_type])',
+    `receive_user_id` varchar(1000) NULL DEFAULT NULL COMMENT '代领取人',
+    `claim_user_id` bigint NULL DEFAULT NULL COMMENT '领取用户编号(申请人帮领取人申请去领取)',
+    `status` int not null default 0 COMMENT '状态(1:结束 0:未结束)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材申领';
+
+-- ----------------------------
+-- 教材申领项
+-- ----------------------------
+DROP TABLE IF EXISTS wf_textbook_claim_item;
+CREATE TABLE wf_textbook_claim_item
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `wf_textbook_claim_id` bigint NULL DEFAULT NULL COMMENT '教材申领编号',
+    `textbook_id` bigint NULL DEFAULT NULL COMMENT '教材管理编号',
+    `applicant_number` int NULL DEFAULT NULL COMMENT '申请数量',
+    `issue_number` int NULL DEFAULT NULL COMMENT '已发放数量',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材申领项';
+
+-- ----------------------------
+-- 教材领取人员
+-- ----------------------------
+DROP TABLE IF EXISTS textbook_claim_user;
+CREATE TABLE textbook_claim_user
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `wf_textbook_claim_id` bigint NULL DEFAULT NULL COMMENT '教材申领编号',
+    `user_id` bigint NULL DEFAULT NULL COMMENT '用户编号',
+    `user_type` int NULL DEFAULT 2 COMMENT '用户类型(1:学生 2=教师)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材领取人员';
+
+-- ----------------------------
+-- 教材出库记录
+-- ----------------------------
+DROP TABLE IF EXISTS textbook_issue_record;
+CREATE TABLE textbook_issue_record
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `wf_textbook_claim_id` bigint NULL DEFAULT NULL COMMENT '教材申领编号',
+    `wf_textbook_claim_item_id` bigint NULL DEFAULT NULL COMMENT '教材申领项编号',
+    `issue_number` int NULL DEFAULT NULL COMMENT '出库数量',
+    `remaining_number` int NULL DEFAULT NULL COMMENT '剩余数量',
+    `receive_user_id` bigint NULL DEFAULT NULL COMMENT '领取用户编号',
+    `issue_user_id` bigint NULL DEFAULT NULL COMMENT '出库用户编号',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '教材出库记录';
+
+-- ----------------------------
+-- 学生教材认领记录
+-- ----------------------------
+DROP TABLE IF EXISTS textbook_student_claim;
+CREATE TABLE textbook_student_claim
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `base_semester_id` bigint COMMENT '学期ID(base_semester)',
+    `class_id` bigint NULL DEFAULT NULL COMMENT '班级编号',
+    `student_user_id` BIGINT NULL DEFAULT NULL COMMENT '学生用户编号',
+    `textbook_id` bigint NULL DEFAULT NULL COMMENT '教材管理编号',
+    `is_claim` int not null default 0 COMMENT '是否领取(1:已领取 0:未领取)',
+    `remark` varchar(1000) COMMENT '备注',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生教材认领记录';
+
+-- ----------------------------
+-- 退书申请
+-- ----------------------------
+DROP TABLE IF EXISTS wf_textbook_recede;
+CREATE TABLE wf_textbook_recede
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `applicant_user_id` bigint NULL DEFAULT NULL COMMENT '申请人',
+    `base_semester_id` bigint COMMENT '学期ID(base_semester)',
+    `class_id` bigint NULL DEFAULT NULL COMMENT '班级编号',
+    `recede_type` varchar(20) NULL DEFAULT NULL COMMENT '退书类型(xjr_dictionary_item[recede_type])',
+    `recede_address` varchar(1000) NULL DEFAULT NULL COMMENT '退还地点',
+    `status` int not null default 0 COMMENT '状态(1:结束 0:未结束)',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '推书申请';
+
+-- ----------------------------
+-- 退书申请项
+-- ----------------------------
+DROP TABLE IF EXISTS wf_textbook_recede_item;
+CREATE TABLE wf_textbook_recede_item
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `wf_textbook_recede_id` bigint NULL DEFAULT NULL COMMENT '退书申请编号',
+    `textbook_id` bigint NULL DEFAULT NULL COMMENT '教材管理编号',
+    `number` int NULL DEFAULT NULL COMMENT '数量',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '推书申请项';
+-- ------------------------------------------------------------------教材管理--------------------------------------------------------------------
+
+-- ------------------------------------------------------------------寝室管理--------------------------------------------------------------------
+-- ----------------------------
+-- 寝室维护
+-- ----------------------------
+DROP TABLE IF EXISTS room;
+CREATE TABLE room
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `office_build_id` bigint NOT NULL COMMENT '楼栋(base_office_build)',
+    `floor_number` int NOT NULL COMMENT '楼层',
+    `room_name` varchar(100) NULL DEFAULT NULL COMMENT '寝室名称',
+    `check_in_status` varchar(20) NULL DEFAULT NULL COMMENT '入住身份(xjr_dictionary_item[check_in_status])',
+    `gender` varchar(20) NULL DEFAULT NULL COMMENT '入住性别(xjr_dictionary_item[gender])',
+    `bed_count` int NULL DEFAULT 0 COMMENT '床位数',
+    `is_max` int not null default 0 COMMENT '是否是混合寝室【一个寝室有多个班级的学生】(1:是 0:否)',
+    `remark` varchar(1000) COMMENT '备注',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '寝室';
+
+-- ----------------------------
+-- 寝室床位
+-- ----------------------------
+DROP TABLE IF EXISTS room_bed;
+CREATE TABLE room_bed
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `room_id` bigint NOT NULL COMMENT '寝室编号(room)',
+    `bed_number` int NULL DEFAULT 0 COMMENT '床位号',
+    `student_user_id` BIGINT NULL DEFAULT NULL COMMENT '学生用户编号',
+    `is_check_in` int not null default 0 COMMENT '是否入住(1:是 0:否)',
+    `remark` varchar(1000) COMMENT '备注',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '寝室床位';
+
+-- ----------------------------
+-- 寝室长任命(任命学生)
+-- ----------------------------
+DROP TABLE IF EXISTS room_student_appoint;
+CREATE TABLE room_student_appoint
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `room_id` bigint NOT NULL COMMENT '寝室编号(room)',
+    `room_bed_id` bigint NOT NULL COMMENT '寝室床位编号(room_bed)',
+    `student_user_id` BIGINT NULL DEFAULT NULL COMMENT '学生用户编号',
+    `remark` varchar(1000) COMMENT '备注',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '寝室长任命';
+
+-- ----------------------------
+-- 宿管任命(任命教职工)
+-- ----------------------------
+DROP TABLE IF EXISTS room_teacher_appoint;
+CREATE TABLE room_teacher_appoint
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `room_id` bigint NOT NULL COMMENT '寝室编号(room)',
+    `user_id` BIGINT NULL DEFAULT NULL COMMENT '用户编号',
+    `remark` varchar(1000) COMMENT '备注',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '宿管任命';
+
+-- ----------------------------
+-- 寝室床位分配记录
+-- ----------------------------
+DROP TABLE IF EXISTS room_bed_record;
+CREATE TABLE room_bed_record
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `grade_id` bigint NULL DEFAULT NULL COMMENT '入学年级(base_grade)',
+    `class_id` bigint NULL DEFAULT NULL COMMENT '班级(base_class)',
+    `need_bed_number` int NULL DEFAULT 0 COMMENT '需要床位号',
+    `distribute_bed_number` int NULL DEFAULT 0 COMMENT '分配床位数',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '寝室床位记录';
+
+-- ----------------------------
+-- 寝室床位分配记录项
+-- ----------------------------
+DROP TABLE IF EXISTS room_bed_record_item;
+CREATE TABLE room_bed_record_item
+(
+    id BIGINT NOT NULL COMMENT '主键编号',
+    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
+    `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
+    `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',
+    `delete_mark` INT NOT NULL COMMENT '删除标记',
+    `enabled_mark` INT NOT NULL COMMENT '有效标志',
+    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
+    `room_bed_record_id` bigint NOT NULL COMMENT '寝室床位记录编号(room_bed_record)',
+    `room_id` bigint NOT NULL COMMENT '寝室编号(room)',
+    `distribute_bed_number` int NULL DEFAULT 0 COMMENT '分配床位数',
+    PRIMARY KEY (`id`)
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '寝室床位记录项';
+
+-- ------------------------------------------------------------------寝室管理--------------------------------------------------------------------
+
+
+
+
+

+ 245 - 0
src/test/java/com/xjrsoft/xjrsoftboot/ScheduleFlowTest.java

@@ -0,0 +1,245 @@
+package com.xjrsoft.xjrsoftboot;
+
+import cn.dev33.satoken.secure.SaSecureUtil;
+import org.junit.jupiter.api.Test;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+// 简约课表测试
+public class ScheduleFlowTest {
+
+    public static final String ALGORITHM = "HmacSHA256";
+
+    public static String calculateHMac(String key, String data) throws Exception {
+        Mac sha256_HMAC = Mac.getInstance(ALGORITHM);
+
+        SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), ALGORITHM);
+        sha256_HMAC.init(secret_key);
+
+        return byteArrayToHex(sha256_HMAC.doFinal(data.getBytes("UTF-8")));
+    }
+
+    public static String byteArrayToHex(byte[] a) {
+        StringBuilder sb = new StringBuilder(a.length * 2);
+        for (byte b : a)
+            sb.append(String.format("%02x", b));
+        return sb.toString();
+    }
+
+
+    /**
+     * 将加密后的字节数组转换成字符串
+     *
+     * @param b 字节数组
+     * @return 字符串
+     */
+    private static String byteArrayToHexString(byte[] b) {
+        StringBuilder hs = new StringBuilder();
+        String stmp;
+        for (int n = 0; b != null && n < b.length; n++) {
+            stmp = Integer.toHexString(b[n] & 0XFF);
+            if (stmp.length() == 1)
+                hs.append('0');
+            hs.append(stmp);
+        }
+        return hs.toString().toLowerCase();
+    }
+
+    /**
+     * https://live.jianyuekb.com/api/v1/ScheduleFlowV2/OpenApi/
+     * schoolId:UUFM5TID45X
+     * secert:UUFM5TID45X
+     * password:Jh&NAbn6Rm#p@6ZZ
+     */
+    @Test
+    public void ScheduleFlowTest() throws Exception {
+        long timestamp = System.currentTimeMillis();
+
+        String password = "";
+
+        String md5Str = SaSecureUtil.md5("Jh&NAbn6Rm#p@6ZZ1703240909745");
+
+        System.out.println(md5Str);
+
+        String sign = calculateHMac("UUFM5TID45X", md5Str);
+
+        System.out.println(sign);
+
+
+//        long timestamp = System.currentTimeMillis();
+//
+//        String password = "";
+//
+//        String md5Str = SaSecureUtil.md5(String.format("Jh&NAbn6Rm#p@6ZZ%d", timestamp));
+//
+//        System.out.println(md5Str);
+//
+//        String sign = calculateHMac("a7dbed0dfc70ebd92934cf9292de8749e9af01a2405217be881f9e77f6ba5320", md5Str);
+//
+//        System.out.println(sign);
+
+//        System.out.println(calculateHMac("a7dbed0dfc70ebd92934cf9292de8749e9af01a2405217be881f9e77f6ba5320", md5Str));
+//
+//        Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
+//        SecretKeySpec secret_key = new SecretKeySpec("a7dbed0dfc70ebd92934cf9292de8749e9af01a2405217be881f9e77f6ba5320".getBytes(), "HmacSHA256");
+//        sha256_HMAC.init(secret_key);
+//        byte[] bytes = sha256_HMAC.doFinal(md5Str.getBytes());
+//        String hash = byteArrayToHexString(bytes);
+//        System.out.println(hash);
+
+
+    }
+
+    public static String doGet(String httpurl) throws Exception {
+        long timestamp = System.currentTimeMillis();
+
+        String password = "";
+
+        String md5Str = SaSecureUtil.md5(String.format("Jh&NAbn6Rm#p@6ZZ%d", timestamp));
+
+        System.out.println(md5Str);
+
+        String sign = calculateHMac("a7dbed0dfc70ebd92934cf9292de8749e9af01a2405217be881f9e77f6ba5320", md5Str);
+
+        System.out.println(sign);
+
+
+        HttpURLConnection connection = null;
+        InputStream is = null;
+        BufferedReader br = null;
+        String result = null;// 返回结果字符串
+        try {
+            // 创建远程url连接对象
+            URL url = new URL(httpurl);
+            // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
+            connection = (HttpURLConnection) url.openConnection();
+            connection.setRequestProperty("schoolId","UUFM5TID45X");
+            connection.setRequestProperty("sign",sign);
+            connection.setRequestProperty("timestamp",String.format("%d",timestamp));
+            // 设置连接方式:get
+            connection.setRequestMethod("GET");
+            // 设置连接主机服务器的超时时间:15000毫秒
+            connection.setConnectTimeout(15000);
+            // 设置读取远程返回的数据时间:60000毫秒
+            connection.setReadTimeout(60000);
+            // 发送请求
+            connection.connect();
+            // 通过connection连接,获取输入流
+            if (connection.getResponseCode() == 200) {
+                is = connection.getInputStream();
+                // 封装输入流is,并指定字符集
+                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+                // 存放数据
+                StringBuffer sbf = new StringBuffer();
+                String temp = null;
+                while ((temp = br.readLine()) != null) {
+                    sbf.append(temp);
+                    sbf.append("\r\n");
+                }
+                result = sbf.toString();
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            if (null != br) {
+                try {
+                    br.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (null != is) {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            connection.disconnect();// 关闭远程连接
+        }
+        return result;
+    }
+
+    public static String doPost(String httpUrl, String param) {
+        HttpURLConnection connection = null;
+        InputStream is = null;
+        OutputStream os = null;
+        BufferedReader br = null;
+        String result = null;
+        try {
+            URL url = new URL(httpUrl);
+            // 通过远程url连接对象打开连接
+            connection = (HttpURLConnection) url.openConnection();
+            // 设置连接请求方式
+            connection.setRequestMethod("POST");
+            // 设置连接主机服务器超时时间:15000毫秒
+            connection.setConnectTimeout(15000);
+            // 设置读取主机服务器返回数据超时时间:60000毫秒
+            connection.setReadTimeout(60000);
+            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
+            connection.setDoOutput(true);
+            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
+            connection.setDoInput(true);
+            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
+            connection.setRequestProperty("Content-Type", "application/json");
+            // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
+//            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
+            // 通过连接对象获取一个输出流
+            os = connection.getOutputStream();
+            // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
+            os.write(param.getBytes());
+            // 通过连接对象获取一个输入流,向远程读取
+            if (connection.getResponseCode() == 200) {
+                is = connection.getInputStream();
+                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
+                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+                StringBuffer sbf = new StringBuffer();
+                String temp = null;
+                // 循环遍历一行一行读取数据
+                while ((temp = br.readLine()) != null) {
+                    sbf.append(temp);
+                    sbf.append("\r\n");
+                }
+                result = sbf.toString();
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            if (null != br) {
+                try {
+                    br.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (null != os) {
+                try {
+                    os.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (null != is) {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            // 断开与远程地址url的连接
+            connection.disconnect();
+        }
+        return result;
+    }
+}