医疗互助补助模块

This commit is contained in:
2026-07-23 11:57:08 +08:00
parent 67e40e36ea
commit a17140fbd2
35 changed files with 5607 additions and 7 deletions
@@ -0,0 +1,15 @@
-- 医疗互助疾病类型基础表;脚本可重复执行。
CREATE TABLE IF NOT EXISTS `medical_disease_type` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`diseaseName` varchar(50) NOT NULL COMMENT '疾病名称',
`diseaseCode` varchar(20) NOT NULL COMMENT '疾病编码',
`isMajorDiseases` tinyint(1) NOT NULL 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_medical_disease_type_code` (`diseaseCode`),
KEY `idx_medical_disease_type_name` (`diseaseName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='医疗互助疾病类型表';
@@ -0,0 +1,71 @@
DROP TABLE IF EXISTS `tb_mutual_apply`;
CREATE TABLE `tb_mutual_apply` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`apply_no` varchar(50) DEFAULT NULL COMMENT '申请编号',
`user_id` varchar(50) DEFAULT NULL COMMENT '申请人用户ID',
`login_name` varchar(50) DEFAULT NULL COMMENT '申请人工号/登录名',
`user_name` varchar(50) NOT NULL COMMENT '申请人姓名',
`sex` varchar(20) DEFAULT NULL COMMENT '性别',
`birthday` date DEFAULT NULL COMMENT '出生年月',
`native_place` varchar(100) DEFAULT NULL COMMENT '籍贯',
`education` varchar(50) DEFAULT NULL COMMENT '学历',
`professional_title` varchar(100) DEFAULT NULL COMMENT '职称',
`dept_id` varchar(50) DEFAULT NULL COMMENT '工作部门ID',
`dept_name` varchar(200) DEFAULT NULL COMMENT '工作部门(系部)',
`id_card` varchar(30) DEFAULT NULL COMMENT '身份证号码',
`mobile` varchar(30) DEFAULT NULL COMMENT '联系电话',
`bank_card_no` varchar(50) DEFAULT NULL COMMENT '工资银行卡号',
`bank_name` varchar(200) DEFAULT NULL COMMENT '开户行',
`join_date` date DEFAULT NULL COMMENT '入会时间',
`join_year` int DEFAULT NULL COMMENT '加入年份',
`disease_type_id` varchar(32) DEFAULT NULL COMMENT '大病类型ID',
`disease_name` varchar(200) NOT NULL COMMENT '大病名称',
`hospital_desc` varchar(500) DEFAULT NULL COMMENT '何时何病住何医院',
`medical_total_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '全年医疗费用总金额',
`self_pay_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '自付金额',
`sign_file_id` varchar(50) DEFAULT NULL COMMENT '申请人签名文件ID',
`sign_time` datetime DEFAULT NULL COMMENT '申请人签名时间',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态 0未审核 1已审核',
`submit_time` datetime DEFAULT NULL COMMENT '提交时间',
`audit_by` varchar(50) DEFAULT NULL COMMENT '审核人',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`audit_opinion` varchar(500) DEFAULT NULL COMMENT '审核意见',
`config_id` bigint DEFAULT NULL COMMENT '审核使用的互助金配置ID',
`config_year` int DEFAULT NULL COMMENT '审核使用的配置年度',
`subsidy_total_amount` decimal(12,2) DEFAULT NULL COMMENT '补助小计',
`bonus_ratio` decimal(5,2) DEFAULT NULL COMMENT '奖励/补助系数',
`actual_subsidy_amount` decimal(12,2) DEFAULT NULL COMMENT '实际补助金额',
`continuous_unapply_year` int DEFAULT NULL COMMENT '连续未申请年数',
`limit_amount` decimal(12,2) DEFAULT NULL COMMENT '本次适用最高补助限额',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_login_name` (`login_name`),
KEY `idx_dept_id` (`dept_id`),
KEY `idx_status` (`status`),
KEY `idx_disease_type_id` (`disease_type_id`),
KEY `idx_join_year` (`join_year`),
KEY `idx_submit_time` (`submit_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='互助金申请表';
DROP TABLE IF EXISTS `tb_mutual_apply_subsidy`;
CREATE TABLE `tb_mutual_apply_subsidy` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`apply_id` bigint NOT NULL COMMENT '申请ID',
`ratio_id` bigint DEFAULT NULL COMMENT '使用的补助比例配置ID',
`range_name` varchar(100) DEFAULT NULL COMMENT '区间名称',
`start_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '区间开始金额',
`end_amount` decimal(12,2) DEFAULT NULL COMMENT '区间结束金额(NULL表示无限)',
`ratio` decimal(5,2) NOT NULL DEFAULT '0.00' COMMENT '补助比例(%)',
`base_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '本区间参与计算金额',
`subsidy_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '本区间补助金额',
`sort` int DEFAULT 1 COMMENT '排序',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_apply_id` (`apply_id`),
KEY `idx_ratio_id` (`ratio_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='互助金补贴金额明细表';
@@ -0,0 +1,51 @@
-- 医疗互助疾病类型 PC 端与移动端菜单。
-- 使用 permission 做幂等判断,重复执行不会插入重复菜单。
-- PC 端一级菜单。
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 'e5d7a110aa214cdf8505fd0000000001', '', LPAD(IFNULL(MAX(CAST(path AS UNSIGNED)), 0) + 1, 4, '0'), '医疗互助', 'Medical Mutual Aid', 'menu', '', '', 'ti-heart', 1, 0, 'medicalMutualAid', NULL, 992, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'y', 0, 0
FROM sys_menu
WHERE platform = 'PC' AND (parentId = '' OR parentId IS NULL) AND CHAR_LENGTH(path) = 4
HAVING NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'medicalMutualAid' AND platform = 'PC') t);
-- PC 端医疗管理分组。
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 'e5d7a110aa214cdf8505fd0000000002', p.id, CONCAT(p.path, '0001'), '医疗管理', 'Medical Manage', 'menu', '', '', '', 1, 0, 'medicalMutualAid.medical', NULL, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'y', 0, 0
FROM sys_menu p
WHERE p.permission = 'medicalMutualAid' AND p.platform = 'PC'
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'medicalMutualAid.medical' AND platform = 'PC') t);
-- PC 端疾病种类页面。
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 'e5d7a110aa214cdf8505fd0000000003', p.id, CONCAT(p.path, '0001'), '疾病种类', 'Disease Type', 'menu', '/platform/medicalMutualAid/medical/diseaseType', 'data-pjax', '', 1, 0, 'medicalMutualAid.medical.diseaseType', NULL, 1, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'j', 0, 0
FROM sys_menu p
WHERE p.permission = 'medicalMutualAid.medical' AND p.platform = 'PC'
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'medicalMutualAid.medical.diseaseType' AND platform = 'PC') 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 'e5d7a110aa214cdf8505fd0000000004', '', LPAD(IFNULL(MAX(CAST(path AS UNSIGNED)), 0) + 1, 4, '0'), '医疗互助', 'Medical Mutual Aid', 'menu', '', '', 'heart-o', 1, 0, 'h5.medicalMutualAid', NULL, 992, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'H5', NULL, NULL, 'y', 0, 0
FROM sys_menu
WHERE platform = 'H5' AND (parentId = '' OR parentId IS NULL) AND CHAR_LENGTH(path) = 4
HAVING NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'h5.medicalMutualAid' AND platform = 'H5') t);
-- 移动端疾病种类页面,权限严格使用 h5. 前缀。
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 'e5d7a110aa214cdf8505fd0000000005', p.id, CONCAT(p.path, '0001'), '疾病种类', 'Disease Type', 'menu', '/platform/h5/medicalMutualAid/medical/diseaseType', 'data-pjax', '', 1, 0, 'h5.medicalMutualAid.medical.diseaseType', NULL, 1, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'H5', NULL, NULL, 'j', 0, 0
FROM sys_menu p
WHERE p.permission = 'h5.medicalMutualAid' AND p.platform = 'H5'
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'h5.medicalMutualAid.medical.diseaseType' AND platform = 'H5') 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 (
'medicalMutualAid',
'medicalMutualAid.medical',
'medicalMutualAid.medical.diseaseType',
'h5.medicalMutualAid',
'h5.medicalMutualAid.medical.diseaseType'
)
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;