From e48f8956a53526579bb2c9102c9a69479cb28419 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Wed, 20 May 2026 09:02:56 +0800 Subject: [PATCH] Changes --- .../db/learning_chapter_content_create.sql | 72 +++++ .../resources/db/learning_course_create.sql | 27 ++ .../db/learning_course_type_add_remark.sql | 2 + ...earning_study_record_add_last_position.sql | 2 + .../db/learning_study_record_create.sql | 52 ++++ .../resources/db/menu/init_learning_menu.sql | 91 +++++++ src/main/resources/db/menu/init_tour_menu.sql | 122 +++++++++ .../db/menu/sys_data_advanced_tool.sql | 49 ++++ .../site_cug_info_add_booking_mode_cache.sql | 3 + .../db/site_cug_info_add_reserve_config.sql | 3 + .../db/site_cug_info_add_site_photo.sql | 2 + src/main/resources/db/tour_dict_init.sql | 253 ++++++++++++++++++ .../resources/db/tour_ledger_add_matter.sql | 7 + .../tour_ledger_add_over_cost_reimbursed.sql | 2 + .../db/tour_ledger_add_query_indexes.sql | 9 + .../db/tour_ledger_direct_relative_create.sql | 21 ++ .../db/tour_line_add_creator_unit.sql | 10 + .../tour_line_add_direct_family_unit_line.sql | 3 + .../resources/db/tour_line_add_open_flag.sql | 3 + .../resources/db/tour_matter_add_creator.sql | 7 + .../resources/db/tour_matter_batch_create.sql | 26 ++ src/main/resources/db/tour_matter_create.sql | 25 ++ .../db/tour_setting_add_activity_group.sql | 6 + .../tour_setting_add_cycle_allowed_times.sql | 3 + .../db/tour_setting_add_cycle_total_cost.sql | 2 + .../db/tour_setting_add_cycle_year.sql | 4 + .../db/tour_setting_add_fill_bed_info.sql | 3 + ...ur_setting_add_out_province_ratio_type.sql | 3 + src/main/resources/db/tour_setting_create.sql | 183 +++++++++++++ ...tting_lot_add_allow_over_reimbursement.sql | 2 + 30 files changed, 997 insertions(+) create mode 100644 src/main/resources/db/learning_chapter_content_create.sql create mode 100644 src/main/resources/db/learning_course_create.sql create mode 100644 src/main/resources/db/learning_course_type_add_remark.sql create mode 100644 src/main/resources/db/learning_study_record_add_last_position.sql create mode 100644 src/main/resources/db/learning_study_record_create.sql create mode 100644 src/main/resources/db/menu/init_learning_menu.sql create mode 100644 src/main/resources/db/menu/init_tour_menu.sql create mode 100644 src/main/resources/db/menu/sys_data_advanced_tool.sql create mode 100644 src/main/resources/db/site_cug_info_add_booking_mode_cache.sql create mode 100644 src/main/resources/db/site_cug_info_add_reserve_config.sql create mode 100644 src/main/resources/db/site_cug_info_add_site_photo.sql create mode 100644 src/main/resources/db/tour_dict_init.sql create mode 100644 src/main/resources/db/tour_ledger_add_matter.sql create mode 100644 src/main/resources/db/tour_ledger_add_over_cost_reimbursed.sql create mode 100644 src/main/resources/db/tour_ledger_add_query_indexes.sql create mode 100644 src/main/resources/db/tour_ledger_direct_relative_create.sql create mode 100644 src/main/resources/db/tour_line_add_creator_unit.sql create mode 100644 src/main/resources/db/tour_line_add_direct_family_unit_line.sql create mode 100644 src/main/resources/db/tour_line_add_open_flag.sql create mode 100644 src/main/resources/db/tour_matter_add_creator.sql create mode 100644 src/main/resources/db/tour_matter_batch_create.sql create mode 100644 src/main/resources/db/tour_matter_create.sql create mode 100644 src/main/resources/db/tour_setting_add_activity_group.sql create mode 100644 src/main/resources/db/tour_setting_add_cycle_allowed_times.sql create mode 100644 src/main/resources/db/tour_setting_add_cycle_total_cost.sql create mode 100644 src/main/resources/db/tour_setting_add_cycle_year.sql create mode 100644 src/main/resources/db/tour_setting_add_fill_bed_info.sql create mode 100644 src/main/resources/db/tour_setting_add_out_province_ratio_type.sql create mode 100644 src/main/resources/db/tour_setting_create.sql create mode 100644 src/main/resources/db/tour_setting_lot_add_allow_over_reimbursement.sql diff --git a/src/main/resources/db/learning_chapter_content_create.sql b/src/main/resources/db/learning_chapter_content_create.sql new file mode 100644 index 00000000..1cec4e69 --- /dev/null +++ b/src/main/resources/db/learning_chapter_content_create.sql @@ -0,0 +1,72 @@ +CREATE TABLE IF NOT EXISTS learning_course_outline ( + id VARCHAR(32) NOT NULL COMMENT 'ID', + courseId VARCHAR(32) NULL COMMENT '所属课程ID', + courseName VARCHAR(100) NULL COMMENT '所属课程名称', + parentId VARCHAR(32) NULL COMMENT '父节点ID', + nodeType VARCHAR(20) NULL COMMENT '节点类型', + title VARCHAR(100) NULL COMMENT '章/节标题', + subtitle VARCHAR(200) NULL COMMENT '副标题', + description LONGTEXT NULL COMMENT '简介', + sortOrder INT NULL COMMENT '排序值', + required TINYINT(1) NULL COMMENT '是否必学', + status VARCHAR(20) NULL COMMENT '状态', + createdBy VARCHAR(32) NULL COMMENT '创建人', + createdAt BIGINT NULL COMMENT '创建时间', + updatedBy VARCHAR(32) NULL COMMENT '修改人', + updatedAt BIGINT NULL COMMENT '修改时间', + delFlag TINYINT(1) NULL COMMENT '删除标记', + PRIMARY KEY (id), + INDEX idx_learning_outline_course (courseId), + INDEX idx_learning_outline_parent (parentId) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学习教育课程大纲'; + +CREATE TABLE IF NOT EXISTS learning_outline_resource ( + id VARCHAR(32) NOT NULL COMMENT 'ID', + courseId VARCHAR(32) NULL COMMENT '所属课程ID', + outlineId VARCHAR(32) NULL COMMENT '所属章/节ID', + resourceTitle VARCHAR(100) NULL COMMENT '资料标题', + resourceType VARCHAR(20) NULL COMMENT '资料类型', + fileExt VARCHAR(20) NULL COMMENT '文件扩展名', + fileData LONGTEXT NULL COMMENT '附件', + durationSeconds INT NULL COMMENT '视频/音频时长', + sortOrder INT NULL COMMENT '排序值', + required TINYINT(1) NULL COMMENT '是否必学', + allowPreview TINYINT(1) NULL COMMENT '是否允许预览', + allowDownload TINYINT(1) NULL COMMENT '是否允许下载', + status VARCHAR(20) NULL COMMENT '状态', + createdBy VARCHAR(32) NULL COMMENT '创建人', + createdAt BIGINT NULL COMMENT '创建时间', + updatedBy VARCHAR(32) NULL COMMENT '修改人', + updatedAt BIGINT NULL COMMENT '修改时间', + delFlag TINYINT(1) NULL COMMENT '删除标记', + PRIMARY KEY (id), + INDEX idx_learning_resource_course (courseId), + INDEX idx_learning_resource_outline (outlineId) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学习教育大纲资料'; + +CREATE TABLE IF NOT EXISTS learning_study_rule ( + id VARCHAR(32) NOT NULL COMMENT 'ID', + courseId VARCHAR(32) NULL COMMENT '所属课程ID', + targetType VARCHAR(20) NULL COMMENT '规则对象类型', + targetId VARCHAR(32) NULL COMMENT '规则对象ID', + required TINYINT(1) NULL COMMENT '是否必学', + studyMode VARCHAR(20) NULL COMMENT '学习方式', + completionRule VARCHAR(50) NULL COMMENT '完成规则', + completePercent INT NULL COMMENT '完成比例', + minStudySeconds INT NULL COMMENT '最少学习时长', + unlockRule VARCHAR(20) NULL COMMENT '解锁规则', + allowSkip TINYINT(1) NULL COMMENT '是否允许跳过', + allowDrag TINYINT(1) NULL COMMENT '是否允许拖动', + pauseCountTime TINYINT(1) NULL COMMENT '暂停是否计时', + hiddenCountTime TINYINT(1) NULL COMMENT '页面隐藏是否计时', + inactiveCountTime TINYINT(1) NULL COMMENT '长时间无操作是否计时', + status VARCHAR(20) NULL COMMENT '状态', + createdBy VARCHAR(32) NULL COMMENT '创建人', + createdAt BIGINT NULL COMMENT '创建时间', + updatedBy VARCHAR(32) NULL COMMENT '修改人', + updatedAt BIGINT NULL COMMENT '修改时间', + delFlag TINYINT(1) NULL COMMENT '删除标记', + PRIMARY KEY (id), + INDEX idx_learning_rule_target (targetType, targetId), + INDEX idx_learning_rule_course (courseId) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学习教育学习规则'; diff --git a/src/main/resources/db/learning_course_create.sql b/src/main/resources/db/learning_course_create.sql new file mode 100644 index 00000000..c331226f --- /dev/null +++ b/src/main/resources/db/learning_course_create.sql @@ -0,0 +1,27 @@ +CREATE TABLE IF NOT EXISTS learning_course ( + id VARCHAR(32) NOT NULL COMMENT 'ID', + courseName VARCHAR(100) NULL COMMENT '课程名称', + courseTypeId VARCHAR(32) NULL COMMENT '课程类型', + lecturerName VARCHAR(100) NULL COMMENT '授课讲师', + lecturerInfo VARCHAR(500) NULL COMMENT '讲师基本信息', + courseIntro LONGTEXT NULL COMMENT '课程简介', + suitablePeople VARCHAR(500) NULL COMMENT '适合人群', + learningGoal VARCHAR(500) NULL COMMENT '学习目标', + coursePeriod VARCHAR(50) NULL COMMENT '课程周期', + openType VARCHAR(20) NULL COMMENT '开课类型', + startTime DATETIME NULL COMMENT '开始时间', + endTime DATETIME NULL COMMENT '结束时间', + status VARCHAR(20) NULL COMMENT '课程状态', + recommendFlags VARCHAR(500) NULL COMMENT '推荐标识', + courseTags VARCHAR(500) NULL COMMENT '课程标签', + targetType VARCHAR(20) NULL COMMENT '学习对象', + targetOrgText VARCHAR(500) NULL COMMENT '指定组织', + sortNum INT NULL COMMENT '排序编码', + cover VARCHAR(500) NULL COMMENT '课程封面', + createdBy VARCHAR(32) NULL COMMENT '创建人', + createdAt BIGINT NULL COMMENT '创建时间', + updatedBy VARCHAR(32) NULL COMMENT '修改人', + updatedAt BIGINT NULL COMMENT '修改时间', + delFlag TINYINT(1) NULL COMMENT '删除标记', + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学习教育课程'; diff --git a/src/main/resources/db/learning_course_type_add_remark.sql b/src/main/resources/db/learning_course_type_add_remark.sql new file mode 100644 index 00000000..417865cd --- /dev/null +++ b/src/main/resources/db/learning_course_type_add_remark.sql @@ -0,0 +1,2 @@ +ALTER TABLE learning_course_type + ADD COLUMN remark VARCHAR(500) NULL COMMENT '备注'; diff --git a/src/main/resources/db/learning_study_record_add_last_position.sql b/src/main/resources/db/learning_study_record_add_last_position.sql new file mode 100644 index 00000000..5b7bcd97 --- /dev/null +++ b/src/main/resources/db/learning_study_record_add_last_position.sql @@ -0,0 +1,2 @@ +ALTER TABLE learning_study_record + ADD COLUMN lastPositionSeconds INT NULL COMMENT '最近播放位置(秒)' AFTER studySeconds; diff --git a/src/main/resources/db/learning_study_record_create.sql b/src/main/resources/db/learning_study_record_create.sql new file mode 100644 index 00000000..622f68e6 --- /dev/null +++ b/src/main/resources/db/learning_study_record_create.sql @@ -0,0 +1,52 @@ +CREATE TABLE IF NOT EXISTS learning_study_record ( + id VARCHAR(32) NOT NULL COMMENT 'ID', + userId VARCHAR(32) NULL COMMENT '学习人ID', + loginName VARCHAR(120) NULL COMMENT '工号', + userName VARCHAR(100) NULL COMMENT '姓名', + unionId VARCHAR(32) NULL COMMENT '所属分工会ID', + unionName VARCHAR(100) NULL COMMENT '所属分工会', + courseId VARCHAR(32) NULL COMMENT '课程ID', + courseName VARCHAR(100) NULL COMMENT '课程名称', + outlineId VARCHAR(32) NULL COMMENT '章节ID', + outlineName VARCHAR(100) NULL COMMENT '章节名称', + firstStudyTime DATETIME NULL COMMENT '第一次进入时间', + latestStudyTime DATETIME NULL COMMENT '最近学习时间', + studySeconds INT NULL COMMENT '累计有效学习时长(秒)', + lastPositionSeconds INT NULL COMMENT '最近播放位置(秒)', + requiredSeconds INT NULL COMMENT '要求学习时长(秒)', + progressPercent INT NULL COMMENT '学习进度', + completeStatus VARCHAR(20) NULL COMMENT '完成状态', + completedAt DATETIME NULL COMMENT '完成时间', + createdBy VARCHAR(32) NULL COMMENT '创建人', + createdAt BIGINT NULL COMMENT '创建时间', + updatedBy VARCHAR(32) NULL COMMENT '修改人', + updatedAt BIGINT NULL COMMENT '修改时间', + delFlag TINYINT(1) NULL COMMENT '删除标记', + PRIMARY KEY (id), + UNIQUE KEY idx_learning_record_user_course_outline (userId, courseId, outlineId), + INDEX idx_learning_record_union (unionId), + INDEX idx_learning_record_course (courseId) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学习教育学习记录'; + +CREATE TABLE IF NOT EXISTS learning_study_segment ( + id VARCHAR(32) NOT NULL COMMENT 'ID', + recordId VARCHAR(32) NULL COMMENT '学习记录ID', + userId VARCHAR(32) NULL COMMENT '学习人ID', + courseId VARCHAR(32) NULL COMMENT '课程ID', + outlineId VARCHAR(32) NULL COMMENT '章节ID', + resourceId VARCHAR(32) NULL COMMENT '资源ID', + resourceName VARCHAR(100) NULL COMMENT '资源名称', + startTime DATETIME NULL COMMENT '开始时间', + endTime DATETIME NULL COMMENT '结束时间', + lastHeartbeatTime DATETIME NULL COMMENT '最近心跳时间', + activeSeconds INT NULL COMMENT '本时段有效学习时长(秒)', + state VARCHAR(20) NULL COMMENT '状态', + createdBy VARCHAR(32) NULL COMMENT '创建人', + createdAt BIGINT NULL COMMENT '创建时间', + updatedBy VARCHAR(32) NULL COMMENT '修改人', + updatedAt BIGINT NULL COMMENT '修改时间', + delFlag TINYINT(1) NULL COMMENT '删除标记', + PRIMARY KEY (id), + INDEX idx_learning_segment_record (recordId), + INDEX idx_learning_segment_user_state (userId, state) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学习教育学习时段'; diff --git a/src/main/resources/db/menu/init_learning_menu.sql b/src/main/resources/db/menu/init_learning_menu.sql new file mode 100644 index 00000000..322c2ab1 --- /dev/null +++ b/src/main/resources/db/menu/init_learning_menu.sql @@ -0,0 +1,91 @@ +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT + 'a0f47f6a6d734c8b9c6ce5c0dfd80001', + '', + LPAD(IFNULL(MAX(CAST(path AS UNSIGNED)), 0) + 1, 4, '0'), + '学习教育平台', + 'Learning', + 'menu', + '', + '', + 'ti-book', + 1, + 0, + 'learning', + NULL, + 990, + 1, + '', + UNIX_TIMESTAMP(NOW()) * 1000, + '', + UNIX_TIMESTAMP(NOW()) * 1000, + 0, + 'PC', + NULL, + NULL, + 'x', + 0, + 0 +FROM sys_menu +WHERE (parentId = '' OR parentId IS NULL) + AND CHAR_LENGTH(path) = 4 +HAVING NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'a0f47f6a6d734c8b9c6ce5c0dfd80002', p.id, CONCAT(p.path, '0001'), '课程类型设置', 'Course Type', 'menu', '/platform/learning/course/type', 'data-pjax', '', 1, 0, 'learning.course.type', NULL, 1, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'k', 0, 0 +FROM sys_menu p +WHERE p.permission = 'learning' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning.course.type') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'a0f47f6a6d734c8b9c6ce5c0dfd80003', p.id, CONCAT(p.path, '0002'), '课程管理', 'Course Manage', 'menu', '/platform/learning/course/manage', 'data-pjax', '', 1, 0, 'learning.course.manage', NULL, 2, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'k', 0, 0 +FROM sys_menu p +WHERE p.permission = 'learning' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning.course.manage') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'a0f47f6a6d734c8b9c6ce5c0dfd80004', p.id, CONCAT(p.path, '0003'), '章节内容管理', 'Chapter Content', 'menu', '/platform/learning/chapter/content', 'data-pjax', '', 1, 0, 'learning.chapter.content', NULL, 3, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'z', 0, 0 +FROM sys_menu p +WHERE p.permission = 'learning' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning.chapter.content') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'a0f47f6a6d734c8b9c6ce5c0dfd80005', p.id, CONCAT(p.path, '0004'), '课程展示', 'Course Display', 'menu', '/platform/learning/course/display', 'data-pjax', '', 1, 0, 'learning.course.display', NULL, 4, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'k', 0, 0 +FROM sys_menu p +WHERE p.permission = 'learning' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning.course.display') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'a0f47f6a6d734c8b9c6ce5c0dfd80006', p.id, CONCAT(p.path, '0005'), '学习活动管理', 'Activity Manage', 'menu', '/platform/learning/activity/manage', 'data-pjax', '', 1, 0, 'learning.activity.manage', NULL, 5, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'x', 0, 0 +FROM sys_menu p +WHERE p.permission = 'learning' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning.activity.manage') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'a0f47f6a6d734c8b9c6ce5c0dfd80007', p.id, CONCAT(p.path, '0006'), '学习统计', 'Learning Statistics', 'menu', '/platform/learning/statistics', 'data-pjax', '', 1, 0, 'learning.statistics', NULL, 6, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'x', 0, 0 +FROM sys_menu p +WHERE p.permission = 'learning' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning.statistics') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'a0f47f6a6d734c8b9c6ce5c0dfd80008', p.id, CONCAT(p.path, '0007'), '我的学习记录', 'My Learning Record', 'menu', '/platform/learning/my/record', 'data-pjax', '', 1, 0, 'learning.my.record', NULL, 7, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'w', 0, 0 +FROM sys_menu p +WHERE p.permission = 'learning' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'learning.my.record') t); + +INSERT INTO sys_role_menu (roleId, menuId) +SELECT r.id, m.id +FROM sys_role r +JOIN sys_menu m ON m.permission IN ( + 'learning', + 'learning.course.type', + 'learning.course.manage', + 'learning.chapter.content', + 'learning.course.display', + 'learning.activity.manage', + 'learning.statistics', + 'learning.my.record' +) +LEFT JOIN sys_role_menu rm ON rm.roleId = r.id AND rm.menuId = m.id +WHERE r.code = 'SYSADMIN' + AND rm.roleId IS NULL; diff --git a/src/main/resources/db/menu/init_tour_menu.sql b/src/main/resources/db/menu/init_tour_menu.sql new file mode 100644 index 00000000..0042dd69 --- /dev/null +++ b/src/main/resources/db/menu/init_tour_menu.sql @@ -0,0 +1,122 @@ +-- 普惠疗休养平台电脑端菜单。 +-- 使用 permission 做幂等判断,避免同一环境重复执行时插入重复菜单。 +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bb1a10001', + '', + LPAD(IFNULL(MAX(CAST(path AS UNSIGNED)), 0) + 1, 4, '0'), + '普惠疗休养', + 'Tour', + 'menu', + '', + '', + 'ti-map-alt', + 1, + 0, + 'tour', + NULL, + 991, + 1, + '', + UNIX_TIMESTAMP(NOW()) * 1000, + '', + UNIX_TIMESTAMP(NOW()) * 1000, + 0, + 'PC', + NULL, + NULL, + 'p', + 0, + 0 +FROM sys_menu +WHERE (parentId = '' OR parentId IS NULL) + AND CHAR_LENGTH(path) = 4 +HAVING NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10002', p.id, CONCAT(p.path, '0001'), '疗休养设置', 'Tour Setting', 'menu', '/platform/tour/setting', 'data-pjax', '', 1, 0, 'tour.setting', NULL, 1, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'l', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.setting') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10003', p.id, CONCAT(p.path, '0002'), '旅行社管理', 'Travel Agency', 'menu', '/platform/tour/travelAgency', 'data-pjax', '', 1, 0, 'tour.travelAgency', NULL, 2, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'l', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.travelAgency') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10004', p.id, CONCAT(p.path, '0003'), '线路管理', 'Route Manage', 'menu', '/platform/tour/route', 'data-pjax', '', 1, 0, 'tour.route', NULL, 3, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'x', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.route') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10005', p.id, CONCAT(p.path, '0004'), '疗休养事项', 'Tour Matter', 'menu', '/platform/tour/matter', 'data-pjax', '', 1, 0, 'tour.matter', NULL, 4, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'l', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.matter') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10006', p.id, CONCAT(p.path, '0005'), '疗休养报名', 'Tour Signup', 'menu', '/platform/tour/signup', 'data-pjax', '', 1, 0, 'tour.signup', NULL, 5, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'l', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.signup') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10008', p.id, CONCAT(p.path, '0006'), '我的报名', 'My Signup', 'menu', '/platform/tour/mysignup', 'data-pjax', '', 1, 0, 'tour.mysignup', NULL, 6, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'w', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.mysignup') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10009', p.id, CONCAT(p.path, '0007'), '分工会查询', 'Union Ledger', 'menu', '/platform/tour/unionledger', 'data-pjax', '', 1, 0, 'tour.unionledger', NULL, 7, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'f', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.unionledger') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10011', p.id, CONCAT(p.path, '0010'), '分工会审核', 'Union Approval', 'menu', '/platform/tour/unionApproval', 'data-pjax', '', 1, 0, 'tour.unionApproval', NULL, 8, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'f', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.unionApproval') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10012', p.id, CONCAT(p.path, '0011'), '校工会审核', 'School Union Approval', 'menu', '/platform/tour/schoolUnionApproval', 'data-pjax', '', 1, 0, 'tour.schoolUnionApproval', NULL, 9, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'x', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.schoolUnionApproval') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10007', p.id, CONCAT(p.path, '0008'), '疗休养台账', 'Tour Ledger', 'menu', '/platform/tour/ledger', 'data-pjax', '', 1, 0, 'tour.ledger', NULL, 10, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'l', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.ledger') t); + +INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, platform, moduleId, picIcon, initialPinyinName, isRecommendApp, isRecommendService) +SELECT 'b7c63f0c73a44a9a8c4f3d3bb1a10010', p.id, CONCAT(p.path, '0009'), '线路成团', 'Tour Group', 'menu', '/platform/tour/group', 'data-pjax', '', 1, 0, 'tour.group', NULL, 11, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'x', 0, 0 +FROM sys_menu p +WHERE p.permission = 'tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'tour.group') t); + +-- 给系统管理员默认授权,其他角色可在角色管理中按需分配。 +INSERT INTO sys_role_menu (roleId, menuId) +SELECT r.id, m.id +FROM sys_role r +JOIN sys_menu m ON m.permission IN ( + 'tour', + 'tour.setting', + 'tour.travelAgency', + 'tour.route', + 'tour.matter', + 'tour.signup', + 'tour.group', + 'tour.mysignup', + 'tour.unionledger', + 'tour.unionApproval', + 'tour.schoolUnionApproval', + 'tour.ledger' +) +LEFT JOIN sys_role_menu rm ON rm.roleId = r.id AND rm.menuId = m.id +WHERE r.code = 'SYSADMIN' + AND rm.roleId IS NULL; diff --git a/src/main/resources/db/menu/sys_data_advanced_tool.sql b/src/main/resources/db/menu/sys_data_advanced_tool.sql new file mode 100644 index 00000000..891857c1 --- /dev/null +++ b/src/main/resources/db/menu/sys_data_advanced_tool.sql @@ -0,0 +1,49 @@ +INSERT INTO sys_menu ( + id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, + permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, + delFlag, processKey, platform, moduleId, isQuickEntry, picIcon, initialPinyinName, + isRecommendApp, isRecommendService +) +SELECT + '2a46a3fd5e284b0ea508264bd7f6ab31', + '5ba858277fa44aaf958b32055468f52a', + '000100040004', + '高级工具', + NULL, + 'menu', + '/platform/sys/data/tool', + 'data-pjax', + NULL, + 1, + 0, + 'sys.data.advanced.tool', + NULL, + 588, + 0, + '29847d7826aa415a92d03b9576d01d3f', + UNIX_TIMESTAMP(NOW()) * 1000, + '29847d7826aa415a92d03b9576d01d3f', + UNIX_TIMESTAMP(NOW()) * 1000, + 0, + NULL, + 'PC', + NULL, + 0, + NULL, + 'g', + 0, + 0 +FROM DUAL +WHERE NOT EXISTS ( + SELECT 1 FROM sys_menu WHERE permission = 'sys.data.advanced.tool' +); + +INSERT INTO sys_role_menu (roleId, menuId) +SELECT + oldMap.roleId, + newMenu.id +FROM sys_role_menu oldMap +JOIN sys_menu oldMenu ON oldMenu.id = oldMap.menuId AND oldMenu.permission = 'sys.data.user.pull' +JOIN sys_menu newMenu ON newMenu.permission = 'sys.data.advanced.tool' +LEFT JOIN sys_role_menu existsMap ON existsMap.roleId = oldMap.roleId AND existsMap.menuId = newMenu.id +WHERE existsMap.roleId IS NULL; diff --git a/src/main/resources/db/site_cug_info_add_booking_mode_cache.sql b/src/main/resources/db/site_cug_info_add_booking_mode_cache.sql new file mode 100644 index 00000000..d80232fe --- /dev/null +++ b/src/main/resources/db/site_cug_info_add_booking_mode_cache.sql @@ -0,0 +1,3 @@ +ALTER TABLE `site_cug_info` +ADD COLUMN `segmented_open_hours` JSON NULL COMMENT '分段预约场次信息' AFTER `open_hours`, +ADD COLUMN `full_day_open_hour` JSON NULL COMMENT '全天候预约时间段' AFTER `segmented_open_hours`; diff --git a/src/main/resources/db/site_cug_info_add_reserve_config.sql b/src/main/resources/db/site_cug_info_add_reserve_config.sql new file mode 100644 index 00000000..0802c147 --- /dev/null +++ b/src/main/resources/db/site_cug_info_add_reserve_config.sql @@ -0,0 +1,3 @@ +ALTER TABLE `site_cug_info` +ADD COLUMN `reserve_time_type` INT NULL DEFAULT 1 COMMENT '预约时间段类型(1分段预约,2全天候预约)' AFTER `not_apply_time_list`, +ADD COLUMN `open_hours` JSON NULL COMMENT '场次信息' AFTER `reserve_time_type`; diff --git a/src/main/resources/db/site_cug_info_add_site_photo.sql b/src/main/resources/db/site_cug_info_add_site_photo.sql new file mode 100644 index 00000000..a4d62974 --- /dev/null +++ b/src/main/resources/db/site_cug_info_add_site_photo.sql @@ -0,0 +1,2 @@ +ALTER TABLE `site_cug_info` +ADD COLUMN `site_photo` VARCHAR(255) NULL COMMENT '场地照片' AFTER `introduce`; diff --git a/src/main/resources/db/tour_dict_init.sql b/src/main/resources/db/tour_dict_init.sql new file mode 100644 index 00000000..d81d6ef1 --- /dev/null +++ b/src/main/resources/db/tour_dict_init.sql @@ -0,0 +1,253 @@ +-- 普惠疗休养系统字典初始化。 +-- 执行后可在 /platform/sys/dict 页面看到:疗休养(Tour) -> 组织形式/疗休养类型/线路类型/床型。 + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict001', '', '9500', '疗休养', '普惠疗休养平台字典', 'Tour', 0, 9500, 1, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'Tour') t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict002', p.id, CONCAT(p.path, '0001'), '组织形式', '疗休养组织形式', 'organizationType', 0, 1, 1, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'Tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'organizationType' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict003', p.id, CONCAT(p.path, '0001'), '校工会组织', '疗休养组织形式', 'schoolUnion', 0, 1, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'organizationType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'schoolUnion' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict004', p.id, CONCAT(p.path, '0002'), '分工会组织', '疗休养组织形式', 'branchUnion', 0, 2, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'organizationType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'branchUnion' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict005', p.id, CONCAT(p.path, '0003'), '个人组织', '疗休养组织形式', 'personal', 0, 3, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'organizationType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'personal' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict006', p.id, CONCAT(p.path, '0002'), '疗休养类型', '疗休养类型', 'tourType', 0, 2, 1, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'Tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'tourType' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict007', p.id, CONCAT(p.path, '0001'), '普惠性疗休养', '疗休养类型', 'inclusiveTour', 0, 1, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'tourType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'inclusiveTour' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict008', p.id, CONCAT(p.path, '0002'), '优秀职工疗休养', '疗休养类型', 'excellentWorkerTour', 0, 2, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'tourType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'excellentWorkerTour' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict009', p.id, CONCAT(p.path, '0003'), '线路类型', '线路类型', 'lineType', 0, 3, 1, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'Tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'lineType' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict010', p.id, CONCAT(p.path, '0001'), '省内线路', '线路类型', 'inProvinceLine', 0, 1, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'lineType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'inProvinceLine' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict011', p.id, CONCAT(p.path, '0002'), '省外线路', '线路类型', 'outProvinceLine', 0, 2, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'lineType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'outProvinceLine' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict020', p.id, CONCAT(p.path, '0004'), '床型', '床型', 'bedType', 0, 4, 1, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'Tour' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'bedType' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict021', p.id, CONCAT(p.path, '0001'), '双人床', '床型', 'doubleBed', 0, 1, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'bedType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'doubleBed' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict022', p.id, CONCAT(p.path, '0002'), '单人床', '床型', 'singleBed', 0, 2, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'bedType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'singleBed' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict023', p.id, CONCAT(p.path, '0003'), '大床', '床型', 'kingBed', 0, 3, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'bedType' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'kingBed' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict012', '', '9600', '亲属关系', '亲属关系', 'familyRelationship', 0, 9600, 1, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'familyRelationship') t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict013', p.id, CONCAT(p.path, '0001'), '直系亲属', '亲属关系', 'directRelative', 0, 1, 1, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'familyRelationship' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'directRelative' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict014', p.id, CONCAT(p.path, '0001'), '父亲', '直系亲属', 'father', 0, 1, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'directRelative' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'father' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict015', p.id, CONCAT(p.path, '0002'), '母亲', '直系亲属', 'mother', 0, 2, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'directRelative' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'mother' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict016', p.id, CONCAT(p.path, '0003'), '丈夫', '直系亲属', 'husband', 0, 3, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'directRelative' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'husband' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict017', p.id, CONCAT(p.path, '0004'), '妻子', '直系亲属', 'wife', 0, 4, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'directRelative' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'wife' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict018', p.id, CONCAT(p.path, '0005'), '儿子', '直系亲属', 'son', 0, 5, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'directRelative' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'son' AND `parentId` = p.id) t); + +INSERT INTO `sys_dict` ( + `id`, `parentId`, `path`, `name`, `remark`, `code`, `disabled`, `location`, `hasChildren`, + `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag` +) +SELECT + 'b7c63f0c73a44a9a8c4f3d3bdict019', p.id, CONCAT(p.path, '0006'), '女儿', '直系亲属', 'daughter', 0, 6, 0, + '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 +FROM `sys_dict` p +WHERE p.`code` = 'directRelative' + AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM `sys_dict` WHERE `code` = 'daughter' AND `parentId` = p.id) t); + +UPDATE `sys_dict` SET `hasChildren` = 1 WHERE `code` IN ('Tour', 'organizationType', 'tourType', 'lineType', 'bedType', 'familyRelationship', 'directRelative'); diff --git a/src/main/resources/db/tour_ledger_add_matter.sql b/src/main/resources/db/tour_ledger_add_matter.sql new file mode 100644 index 00000000..1b782a03 --- /dev/null +++ b/src/main/resources/db/tour_ledger_add_matter.sql @@ -0,0 +1,7 @@ +-- Add matter reference so signup records are unique per travel period/matter. +ALTER TABLE `tour_ledger` + ADD COLUMN `matterId` varchar(32) DEFAULT NULL COMMENT '报名事项ID' AFTER `signupTime`; + +ALTER TABLE `tour_ledger` + ADD KEY `idx_tour_ledger_matter` (`matterId`), + ADD KEY `idx_tour_ledger_matter_job` (`matterId`, `jobNo`); diff --git a/src/main/resources/db/tour_ledger_add_over_cost_reimbursed.sql b/src/main/resources/db/tour_ledger_add_over_cost_reimbursed.sql new file mode 100644 index 00000000..8705341a --- /dev/null +++ b/src/main/resources/db/tour_ledger_add_over_cost_reimbursed.sql @@ -0,0 +1,2 @@ +ALTER TABLE `tour_ledger` + ADD COLUMN `overCostReimbursed` tinyint(1) DEFAULT 0 COMMENT '报销超出费用' AFTER `reimbursed`; diff --git a/src/main/resources/db/tour_ledger_add_query_indexes.sql b/src/main/resources/db/tour_ledger_add_query_indexes.sql new file mode 100644 index 00000000..f7ad5eae --- /dev/null +++ b/src/main/resources/db/tour_ledger_add_query_indexes.sql @@ -0,0 +1,9 @@ +-- 疗休养台账查询加速索引。 +ALTER TABLE `tour_ledger` + ADD KEY `idx_tour_ledger_year_signup` (`year`, `delFlag`, `signupTime`), + ADD KEY `idx_tour_ledger_year_line` (`year`, `lineId`, `delFlag`), + ADD KEY `idx_tour_ledger_year_union_type` (`year`, `unionId`, `lineType`, `delFlag`), + ADD KEY `idx_tour_ledger_year_job` (`year`, `jobNo`, `delFlag`); + +ALTER TABLE `wf_process_instance` + ADD KEY `idx_wf_process_instance_business_state` (`businessNo`, `state`); diff --git a/src/main/resources/db/tour_ledger_direct_relative_create.sql b/src/main/resources/db/tour_ledger_direct_relative_create.sql new file mode 100644 index 00000000..1d0d1cc5 --- /dev/null +++ b/src/main/resources/db/tour_ledger_direct_relative_create.sql @@ -0,0 +1,21 @@ +-- 直系亲属线路报名信息表,独立于普通携带亲属信息表。 +CREATE TABLE IF NOT EXISTS `tour_ledger_direct_relative` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `ledgerId` varchar(32) DEFAULT NULL COMMENT '台账ID', + `relativeName` varchar(100) DEFAULT NULL COMMENT '亲属姓名', + `unitName` varchar(100) DEFAULT NULL COMMENT '所在单位', + `relationshipCode` varchar(50) DEFAULT NULL COMMENT '亲属关系编码', + `relationshipName` varchar(50) DEFAULT NULL COMMENT '亲属关系', + `lineId` varchar(32) DEFAULT NULL COMMENT '线路ID', + `lineName` varchar(100) DEFAULT NULL COMMENT '线路名称', + `travelStartTime` varchar(20) DEFAULT NULL COMMENT '出行开始日期', + `travelEndTime` varchar(20) DEFAULT NULL COMMENT '出行结束日期', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `idx_tour_ledger_direct_relative_ledger` (`ledgerId`), + KEY `idx_tour_ledger_direct_relative_line` (`lineId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养直系亲属线路报名信息'; diff --git a/src/main/resources/db/tour_line_add_creator_unit.sql b/src/main/resources/db/tour_line_add_creator_unit.sql new file mode 100644 index 00000000..8b06c219 --- /dev/null +++ b/src/main/resources/db/tour_line_add_creator_unit.sql @@ -0,0 +1,10 @@ +-- 线路管理增加创建人和所在单位业务字段。 +ALTER TABLE `tour_line` + ADD COLUMN `creatorUserId` varchar(32) DEFAULT NULL COMMENT '创建人ID' AFTER `travelAgencyId`, + ADD COLUMN `creatorName` varchar(100) DEFAULT NULL COMMENT '创建人' AFTER `creatorUserId`, + ADD COLUMN `unitId` varchar(32) DEFAULT NULL COMMENT '所在单位ID' AFTER `creatorName`, + ADD COLUMN `unitName` varchar(100) DEFAULT NULL COMMENT '所在单位' AFTER `unitId`; + +ALTER TABLE `tour_line` + ADD KEY `idx_tour_line_creator` (`creatorUserId`), + ADD KEY `idx_tour_line_unit` (`unitId`); diff --git a/src/main/resources/db/tour_line_add_direct_family_unit_line.sql b/src/main/resources/db/tour_line_add_direct_family_unit_line.sql new file mode 100644 index 00000000..5abcb498 --- /dev/null +++ b/src/main/resources/db/tour_line_add_direct_family_unit_line.sql @@ -0,0 +1,3 @@ +-- 线路管理增加是否直系亲属线路字段,默认否。 +ALTER TABLE `tour_line` + ADD COLUMN `directFamilyUnitLine` tinyint(1) DEFAULT 0 COMMENT '是否直系亲属线路' AFTER `openFlag`; diff --git a/src/main/resources/db/tour_line_add_open_flag.sql b/src/main/resources/db/tour_line_add_open_flag.sql new file mode 100644 index 00000000..eb9dd2d0 --- /dev/null +++ b/src/main/resources/db/tour_line_add_open_flag.sql @@ -0,0 +1,3 @@ +-- 线路管理增加是否对外开放字段,默认是。 +ALTER TABLE `tour_line` + ADD COLUMN `openFlag` tinyint(1) DEFAULT 1 COMMENT '是否对外开放' AFTER `mobileThumb`; diff --git a/src/main/resources/db/tour_matter_add_creator.sql b/src/main/resources/db/tour_matter_add_creator.sql new file mode 100644 index 00000000..7f48198a --- /dev/null +++ b/src/main/resources/db/tour_matter_add_creator.sql @@ -0,0 +1,7 @@ +-- 疗休养事项增加创建人字段。 +ALTER TABLE `tour_matter` + ADD COLUMN `creatorUserId` varchar(32) DEFAULT NULL COMMENT '创建人ID' AFTER `settingId`, + ADD COLUMN `creatorName` varchar(100) DEFAULT NULL COMMENT '创建人' AFTER `creatorUserId`; + +ALTER TABLE `tour_matter` + ADD KEY `idx_tour_matter_creator` (`creatorUserId`); diff --git a/src/main/resources/db/tour_matter_batch_create.sql b/src/main/resources/db/tour_matter_batch_create.sql new file mode 100644 index 00000000..4a02d0f5 --- /dev/null +++ b/src/main/resources/db/tour_matter_batch_create.sql @@ -0,0 +1,26 @@ +-- 疗休养事项批次表。 +CREATE TABLE IF NOT EXISTS `tour_matter_batch` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `matterId` varchar(32) DEFAULT NULL COMMENT '事项ID', + `lineId` varchar(32) DEFAULT NULL COMMENT '线路ID', + `batchName` varchar(100) DEFAULT NULL COMMENT '批次名称', + `signupStartTime` varchar(20) DEFAULT NULL COMMENT '报名开始时间', + `signupEndTime` varchar(20) DEFAULT NULL COMMENT '报名结束时间', + `travelStartTime` varchar(20) DEFAULT NULL COMMENT '出行开始时间', + `travelEndTime` varchar(20) DEFAULT NULL COMMENT '出行结束时间', + `changeDeadline` varchar(20) DEFAULT NULL COMMENT '变更截止时间', + `contactName` varchar(30) DEFAULT NULL COMMENT '联系人', + `contactPhone` varchar(30) DEFAULT NULL COMMENT '联系方式', + `minGroupPeople` int DEFAULT NULL COMMENT '最少成团人数', + `maxGroupPeople` int DEFAULT NULL COMMENT '最多成团人数', + `estimatedCost` decimal(10,2) DEFAULT NULL COMMENT '预计费用', + `enabled` tinyint(1) DEFAULT 1 COMMENT '状态', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `idx_tour_matter_batch_matter` (`matterId`), + KEY `idx_tour_matter_batch_line` (`lineId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养事项批次'; diff --git a/src/main/resources/db/tour_matter_create.sql b/src/main/resources/db/tour_matter_create.sql new file mode 100644 index 00000000..7a883bfe --- /dev/null +++ b/src/main/resources/db/tour_matter_create.sql @@ -0,0 +1,25 @@ +-- 疗休养事项表。 +CREATE TABLE IF NOT EXISTS `tour_matter` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `year` int DEFAULT NULL COMMENT '年度', + `matterName` varchar(100) DEFAULT NULL COMMENT '事项名称', + `settingId` varchar(32) DEFAULT NULL COMMENT '疗休养配置ID', + `creatorUserId` varchar(32) DEFAULT NULL COMMENT '创建人ID', + `creatorName` varchar(100) DEFAULT NULL COMMENT '创建人', + `unionId` varchar(32) DEFAULT NULL COMMENT '所属工会ID', + `organizationType` varchar(100) DEFAULT NULL COMMENT '组织形式', + `mobileThumb` varchar(500) DEFAULT NULL COMMENT '移动端缩略图', + `enabled` tinyint(1) DEFAULT 1 COMMENT '事项状态', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tour_matter_year_name` (`year`, `matterName`), + KEY `idx_tour_matter_year` (`year`), + KEY `idx_tour_matter_creator` (`creatorUserId`), + KEY `idx_tour_matter_setting` (`settingId`), + KEY `idx_tour_matter_union` (`unionId`), + KEY `idx_tour_matter_org_type` (`organizationType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养事项'; diff --git a/src/main/resources/db/tour_setting_add_activity_group.sql b/src/main/resources/db/tour_setting_add_activity_group.sql new file mode 100644 index 00000000..188e4fd6 --- /dev/null +++ b/src/main/resources/db/tour_setting_add_activity_group.sql @@ -0,0 +1,6 @@ +-- Add activity user scope reference for tour settings. +ALTER TABLE `tour_setting` + ADD COLUMN `activityGroupId` varchar(32) DEFAULT NULL COMMENT '可参加人员范围ID' AFTER `tourType`; + +ALTER TABLE `tour_setting` + ADD KEY `idx_tour_setting_activity_group` (`activityGroupId`); diff --git a/src/main/resources/db/tour_setting_add_cycle_allowed_times.sql b/src/main/resources/db/tour_setting_add_cycle_allowed_times.sql new file mode 100644 index 00000000..103af786 --- /dev/null +++ b/src/main/resources/db/tour_setting_add_cycle_allowed_times.sql @@ -0,0 +1,3 @@ +-- 疗休养配置增加周期允许次数字段。 +ALTER TABLE `tour_setting` + ADD COLUMN `cycleAllowedTimes` int DEFAULT NULL COMMENT '周期允许次数' AFTER `cycleTotalCost`; diff --git a/src/main/resources/db/tour_setting_add_cycle_total_cost.sql b/src/main/resources/db/tour_setting_add_cycle_total_cost.sql new file mode 100644 index 00000000..954ac7cf --- /dev/null +++ b/src/main/resources/db/tour_setting_add_cycle_total_cost.sql @@ -0,0 +1,2 @@ +ALTER TABLE `tour_setting` + ADD COLUMN `cycleTotalCost` int DEFAULT NULL COMMENT '周期内总费用' AFTER `cycleEndYear`; diff --git a/src/main/resources/db/tour_setting_add_cycle_year.sql b/src/main/resources/db/tour_setting_add_cycle_year.sql new file mode 100644 index 00000000..d26ec641 --- /dev/null +++ b/src/main/resources/db/tour_setting_add_cycle_year.sql @@ -0,0 +1,4 @@ +-- Add optional cycle year range for tour settings. +ALTER TABLE `tour_setting` + ADD COLUMN `cycleStartYear` int DEFAULT NULL COMMENT '周期开始年度' AFTER `outProvinceRatio`, + ADD COLUMN `cycleEndYear` int DEFAULT NULL COMMENT '周期结束年度' AFTER `cycleStartYear`; diff --git a/src/main/resources/db/tour_setting_add_fill_bed_info.sql b/src/main/resources/db/tour_setting_add_fill_bed_info.sql new file mode 100644 index 00000000..c4c68d29 --- /dev/null +++ b/src/main/resources/db/tour_setting_add_fill_bed_info.sql @@ -0,0 +1,3 @@ +-- 疗休养配置增加是否填报床位信息字段,默认开启以兼容历史配置。 +ALTER TABLE `tour_setting` + ADD COLUMN `fillBedInfo` tinyint(1) DEFAULT 1 COMMENT '是否填报床位信息' AFTER `allowFamily`; diff --git a/src/main/resources/db/tour_setting_add_out_province_ratio_type.sql b/src/main/resources/db/tour_setting_add_out_province_ratio_type.sql new file mode 100644 index 00000000..6e9567be --- /dev/null +++ b/src/main/resources/db/tour_setting_add_out_province_ratio_type.sql @@ -0,0 +1,3 @@ +ALTER TABLE `tour_setting` + ADD COLUMN `outProvinceRatioType` varchar(50) DEFAULT '当年报名人数' COMMENT '省外人数占比类型' AFTER `outProvinceRatio`, + ADD COLUMN `outProvinceFixedPeople` int DEFAULT 0 COMMENT '省外固定人数' AFTER `outProvinceRatioType`; diff --git a/src/main/resources/db/tour_setting_create.sql b/src/main/resources/db/tour_setting_create.sql new file mode 100644 index 00000000..4dd97880 --- /dev/null +++ b/src/main/resources/db/tour_setting_create.sql @@ -0,0 +1,183 @@ +-- 普惠疗休养基础配置表。 +-- 若生产环境未开启 Nutz 自动建表,请先执行本脚本再使用“疗休养设置”菜单。 +CREATE TABLE IF NOT EXISTS `tour_setting` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `year` int DEFAULT NULL COMMENT '年度', + `configName` varchar(100) DEFAULT NULL COMMENT '疗休养配置名称', + `tourType` varchar(50) DEFAULT NULL COMMENT '疗休养类型', + `activityGroupId` varchar(32) DEFAULT NULL COMMENT '可参加人员范围ID', + `sortNo` int DEFAULT NULL COMMENT '排序编号', + `minGroupPeople` int DEFAULT NULL COMMENT '最少成团人数', + `maxGroupPeople` int DEFAULT NULL COMMENT '最多成团人数', + `outProvinceYears` int DEFAULT NULL COMMENT '省外几年去一次', + `outProvinceRatio` decimal(10,2) DEFAULT NULL COMMENT '省外人数占比', + `outProvinceRatioType` varchar(50) DEFAULT '当年报名人数' COMMENT '省外人数占比类型', + `outProvinceFixedPeople` int DEFAULT 0 COMMENT '省外固定人数', + `cycleStartYear` int DEFAULT NULL COMMENT '周期开始年度', + `cycleEndYear` int DEFAULT NULL COMMENT '周期结束年度', + `cycleTotalCost` int DEFAULT NULL COMMENT '周期内总费用', + `cycleAllowedTimes` int DEFAULT NULL COMMENT '周期允许次数', + `allowFamily` tinyint(1) DEFAULT 0 COMMENT '是否允许携带家属', + `fillBedInfo` tinyint(1) DEFAULT 1 COMMENT '是否填报床位信息', + `enabled` tinyint(1) DEFAULT 1 COMMENT '是否启用', + `serviceNotice` text COMMENT '服务须知', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `idx_tour_setting_year` (`year`), + KEY `idx_tour_setting_activity_group` (`activityGroupId`), + KEY `idx_tour_setting_sort` (`sortNo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养配置'; + +-- 疗休养配置标段表。 +-- 标段先挂在配置上维护,后续线路、旅行社、报名等模块可继续通过 lotId 做业务关联。 +CREATE TABLE IF NOT EXISTS `tour_setting_lot` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `settingId` varchar(32) DEFAULT NULL COMMENT '所属配置ID', + `lotName` varchar(50) DEFAULT NULL COMMENT '标段名称', + `lotValue` varchar(50) DEFAULT NULL COMMENT '标段值', + `activityCost` int DEFAULT NULL COMMENT '标段费用', + `allowOverReimbursement` tinyint(1) DEFAULT 0 COMMENT '允许超出报销', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `idx_tour_setting_lot_setting` (`settingId`), + KEY `idx_tour_setting_lot_value` (`lotValue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养配置标段'; + +-- 旅行社管理表。 +CREATE TABLE IF NOT EXISTS `tour_travel_agency` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `year` int DEFAULT NULL COMMENT '年度', + `agencyCode` varchar(50) DEFAULT NULL COMMENT '旅行社编号', + `agencyName` varchar(100) DEFAULT NULL COMMENT '旅行社名称', + `contactName` varchar(30) DEFAULT NULL COMMENT '联系人', + `contactPhone` varchar(30) DEFAULT NULL COMMENT '联系人手机', + `email` varchar(100) DEFAULT NULL COMMENT '邮箱', + `remark` text COMMENT '备注', + `mobileThumb` varchar(500) DEFAULT NULL COMMENT '移动端缩略图', + `enabled` tinyint(1) DEFAULT 1 COMMENT '激活状态', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tour_travel_agency_year_code` (`year`, `agencyCode`), + KEY `idx_tour_travel_agency_name` (`agencyName`), + KEY `idx_tour_travel_agency_contact` (`contactName`, `contactPhone`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养旅行社'; + +-- 线路管理表。 +CREATE TABLE IF NOT EXISTS `tour_line` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `year` int DEFAULT NULL COMMENT '创建年度', + `lineCode` varchar(50) DEFAULT NULL COMMENT '线路编号', + `lineName` varchar(100) DEFAULT NULL COMMENT '线路名称', + `travelAgencyId` varchar(32) DEFAULT NULL COMMENT '旅行社ID', + `creatorUserId` varchar(32) DEFAULT NULL COMMENT '创建人ID', + `creatorName` varchar(100) DEFAULT NULL COMMENT '创建人', + `unitId` varchar(32) DEFAULT NULL COMMENT '所在单位ID', + `unitName` varchar(100) DEFAULT NULL COMMENT '所在单位', + `lineType` varchar(50) DEFAULT NULL COMMENT '线路类型', + `lotId` varchar(32) DEFAULT NULL COMMENT '时间标段ID', + `lineContent` text COMMENT '线路内容', + `mobileThumb` varchar(500) DEFAULT NULL COMMENT '移动端缩略图', + `openFlag` tinyint(1) DEFAULT 1 COMMENT '是否对外开放', + `directFamilyUnitLine` tinyint(1) DEFAULT 0 COMMENT '是否直系亲属线路', + `enabled` tinyint(1) DEFAULT 1 COMMENT '激活状态', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tour_line_year_code` (`year`, `lineCode`), + KEY `idx_tour_line_year` (`year`), + KEY `idx_tour_line_name` (`lineName`), + KEY `idx_tour_line_agency` (`travelAgencyId`), + KEY `idx_tour_line_creator` (`creatorUserId`), + KEY `idx_tour_line_unit` (`unitId`), + KEY `idx_tour_line_lot` (`lotId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养线路'; + +-- 疗休养事项表。 +CREATE TABLE IF NOT EXISTS `tour_matter` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `year` int DEFAULT NULL COMMENT '年度', + `matterName` varchar(100) DEFAULT NULL COMMENT '事项名称', + `settingId` varchar(32) DEFAULT NULL COMMENT '疗休养配置ID', + `creatorUserId` varchar(32) DEFAULT NULL COMMENT '创建人ID', + `creatorName` varchar(100) DEFAULT NULL COMMENT '创建人', + `unionId` varchar(32) DEFAULT NULL COMMENT '所属工会ID', + `organizationType` varchar(100) DEFAULT NULL COMMENT '组织形式', + `mobileThumb` varchar(500) DEFAULT NULL COMMENT '移动端缩略图', + `enabled` tinyint(1) DEFAULT 1 COMMENT '事项状态', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tour_matter_year_name` (`year`, `matterName`), + KEY `idx_tour_matter_year` (`year`), + KEY `idx_tour_matter_creator` (`creatorUserId`), + KEY `idx_tour_matter_setting` (`settingId`), + KEY `idx_tour_matter_union` (`unionId`), + KEY `idx_tour_matter_org_type` (`organizationType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养事项'; + +-- 疗休养事项批次表。 +CREATE TABLE IF NOT EXISTS `tour_matter_batch` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `matterId` varchar(32) DEFAULT NULL COMMENT '事项ID', + `lineId` varchar(32) DEFAULT NULL COMMENT '线路ID', + `batchName` varchar(100) DEFAULT NULL COMMENT '批次名称', + `signupStartTime` varchar(20) DEFAULT NULL COMMENT '报名开始时间', + `signupEndTime` varchar(20) DEFAULT NULL COMMENT '报名结束时间', + `travelStartTime` varchar(20) DEFAULT NULL COMMENT '出行开始时间', + `travelEndTime` varchar(20) DEFAULT NULL COMMENT '出行结束时间', + `changeDeadline` varchar(20) DEFAULT NULL COMMENT '变更截止时间', + `contactName` varchar(30) DEFAULT NULL COMMENT '联系人', + `contactPhone` varchar(30) DEFAULT NULL COMMENT '联系方式', + `minGroupPeople` int DEFAULT NULL COMMENT '最少成团人数', + `maxGroupPeople` int DEFAULT NULL COMMENT '最多成团人数', + `estimatedCost` decimal(10,2) DEFAULT NULL COMMENT '预计费用', + `enabled` tinyint(1) DEFAULT 1 COMMENT '状态', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `idx_tour_matter_batch_matter` (`matterId`), + KEY `idx_tour_matter_batch_line` (`lineId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养事项批次'; + +-- 直系亲属线路报名信息表。 +CREATE TABLE IF NOT EXISTS `tour_ledger_direct_relative` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `ledgerId` varchar(32) DEFAULT NULL COMMENT '台账ID', + `relativeName` varchar(100) DEFAULT NULL COMMENT '亲属姓名', + `unitName` varchar(100) DEFAULT NULL COMMENT '所在单位', + `relationshipCode` varchar(50) DEFAULT NULL COMMENT '亲属关系编码', + `relationshipName` varchar(50) DEFAULT NULL COMMENT '亲属关系', + `lineId` varchar(32) DEFAULT NULL COMMENT '线路ID', + `lineName` varchar(100) DEFAULT NULL COMMENT '线路名称', + `travelStartTime` varchar(20) DEFAULT NULL COMMENT '出行开始日期', + `travelEndTime` varchar(20) DEFAULT NULL COMMENT '出行结束日期', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `idx_tour_ledger_direct_relative_ledger` (`ledgerId`), + KEY `idx_tour_ledger_direct_relative_line` (`lineId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='普惠疗休养直系亲属线路报名信息'; diff --git a/src/main/resources/db/tour_setting_lot_add_allow_over_reimbursement.sql b/src/main/resources/db/tour_setting_lot_add_allow_over_reimbursement.sql new file mode 100644 index 00000000..54447377 --- /dev/null +++ b/src/main/resources/db/tour_setting_lot_add_allow_over_reimbursement.sql @@ -0,0 +1,2 @@ +ALTER TABLE `tour_setting_lot` + ADD COLUMN `allowOverReimbursement` tinyint(1) DEFAULT 0 COMMENT '允许超出报销' AFTER `activityCost`;