feat: 修复困难帮扶申请表单校验及页面加载闪烁,调整办公室主任拒绝、退回审批时不校验级别和帮扶金额。

新增特殊慰问模块,支持分工会主席统一为多人申请、Excel 导入及人员校验;完善主从表存储、表单校验、审批展示和导出,移除分工会主席审批节点,使用独立流程节点标识。
This commit is contained in:
2026-10-30 16:30:48 +08:00
parent 29260423d5
commit 16cae3ed2b
42 changed files with 6754 additions and 12 deletions
@@ -0,0 +1,223 @@
-- 全量初始化:完整定义特殊慰问申请主表、被申请人明细表和慰问类型表。
-- 表已存在时不执行本文件中的建表语句;本文件不复制数据、不配置角色授权和工作流。
CREATE TABLE `special_condolence` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`applyUserId` varchar(32) DEFAULT NULL COMMENT '申请人ID',
`applyUserName` varchar(100) DEFAULT NULL COMMENT '申请人姓名',
`applyLoginName` varchar(120) DEFAULT NULL COMMENT '申请人工号',
`applyUnionId` varchar(32) DEFAULT NULL COMMENT '申请人分工会ID',
`applyUnionName` varchar(100) DEFAULT NULL COMMENT '申请人分工会',
`applyUnitId` varchar(32) DEFAULT NULL COMMENT '申请人单位ID',
`applyUnitName` varchar(100) DEFAULT NULL COMMENT '申请人单位',
`helpUserId` varchar(32) DEFAULT NULL COMMENT '补助人ID',
`helpUserName` varchar(100) DEFAULT NULL COMMENT '补助人姓名',
`helpLoginName` varchar(120) DEFAULT NULL COMMENT '补助人工号',
`helpUnionId` varchar(32) DEFAULT NULL COMMENT '补助人分工会ID',
`helpUnionName` varchar(100) DEFAULT NULL COMMENT '补助人分工会',
`helpUnitId` varchar(32) DEFAULT NULL COMMENT '补助人单位ID',
`helpUnitName` varchar(100) DEFAULT NULL COMMENT '补助人单位',
`origin` varchar(20) DEFAULT NULL COMMENT '类型',
`payUserId` varchar(32) DEFAULT NULL COMMENT '收款人',
`payUserName` varchar(30) DEFAULT NULL COMMENT '收款人姓名',
`payLoginName` varchar(20) DEFAULT NULL COMMENT '收款人工号',
`type` varchar(32) DEFAULT NULL COMMENT '慰问类型',
`typeCode` varchar(32) DEFAULT NULL COMMENT '慰问编码',
`way` varchar(20) DEFAULT NULL COMMENT '慰问方式',
`perMoney` decimal(10,2) DEFAULT NULL COMMENT '统一每人慰问金额',
`money` float(10,2) DEFAULT NULL COMMENT '慰问金额',
`occurTime` varchar(30) DEFAULT NULL COMMENT '发生时间',
`child` varchar(10) DEFAULT NULL COMMENT '生育几孩(孩次)',
`hospital` varchar(50) DEFAULT NULL COMMENT '所在医院',
`hospitalHouseNum` varchar(20) DEFAULT NULL COMMENT '病房床号',
`hospitalHouseBedNum` varchar(20) DEFAULT NULL COMMENT '病房床号',
`hospitalBy` varchar(100) DEFAULT NULL COMMENT '住院病由',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`files` json DEFAULT NULL COMMENT '附件',
`signature` varchar(255) DEFAULT NULL COMMENT '签字',
`createTime` varchar(30) DEFAULT NULL COMMENT '申请时间',
`bankUserName` varchar(100) DEFAULT NULL COMMENT '户名',
`bankCardNumber` varchar(100) DEFAULT NULL COMMENT '银行账号',
`bankOfDeposit` varchar(100) DEFAULT NULL COMMENT '开户行',
`certifierUserId` varchar(32) DEFAULT NULL COMMENT '证明人ID',
`certifierUserName` varchar(100) DEFAULT NULL COMMENT '证明人姓名',
`certifierLoginName` varchar(120) DEFAULT NULL COMMENT '证明人工号',
`certifierUnionId` varchar(32) DEFAULT NULL COMMENT '证明人分工会ID',
`certifierUnionName` varchar(100) DEFAULT NULL COMMENT '证明人分工会',
`certifierUnitId` varchar(32) DEFAULT NULL COMMENT '证明人单位ID',
`certifierUnitName` varchar(100) DEFAULT NULL COMMENT '证明人单位',
`handlerUserId` varchar(32) DEFAULT NULL COMMENT '经办人ID',
`handlerUserName` varchar(100) DEFAULT NULL COMMENT '经办人姓名',
`handlerLoginName` varchar(120) DEFAULT NULL COMMENT '经办人工号',
`handlerUnionId` varchar(32) DEFAULT NULL COMMENT '经办人分工会ID',
`handlerUnionName` varchar(100) DEFAULT NULL COMMENT '经办人分工会',
`handlerUnitId` varchar(32) DEFAULT NULL COMMENT '经办人单位ID',
`handlerUnitName` varchar(100) DEFAULT NULL COMMENT '经办人单位',
`hospitalizationTime` varchar(30) DEFAULT NULL COMMENT '入院时间',
`leaveHospitalTime` varchar(30) DEFAULT NULL COMMENT '出院时间',
`thisYearHospitalizationNum` int 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`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='特殊慰问申请';
CREATE TABLE `special_condolence_type` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`code` varchar(30) DEFAULT NULL COMMENT '编码',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`money` float(10,2) DEFAULT NULL COMMENT '费用',
`way` varchar(20) DEFAULT NULL COMMENT '慰问方式',
`enable` tinyint(1) DEFAULT 1 COMMENT '是否启用',
`isUploadFile` tinyint(1) DEFAULT NULL COMMENT '是否上传附件',
`uploadFileDesc` varchar(50) DEFAULT NULL COMMENT '上传附件说明',
`location` int DEFAULT NULL COMMENT '排序字段',
`sortNum` int NOT NULL DEFAULT 0 COMMENT '排序',
`uploadMeetingRecord` 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`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='特殊慰问类型';
-- 一份申请对应一个流程实例;多名被申请人通过 applyId 关联同一份申请。
CREATE TABLE `special_condolence_recipient` (
`id` varchar(32) NOT NULL COMMENT '明细ID',
`applyId` varchar(32) NOT NULL COMMENT '申请主表ID',
`helpUserId` varchar(32) NOT NULL COMMENT '慰问对象用户ID',
`helpLoginName` varchar(120) DEFAULT NULL COMMENT '慰问对象工号',
`personType` varchar(50) DEFAULT NULL COMMENT '人员类型',
`helpUserName` varchar(100) NOT NULL COMMENT '慰问对象',
`type` varchar(32) NOT NULL COMMENT '慰问类型ID',
`typeName` varchar(50) DEFAULT NULL COMMENT '慰问类型名称',
`typeCode` varchar(32) DEFAULT NULL COMMENT '慰问类型编码',
`way` varchar(20) DEFAULT NULL COMMENT '慰问方式',
`idCard` varchar(18) NOT NULL COMMENT '身份证号码',
`bankOfDeposit` varchar(100) NOT NULL COMMENT '开户行',
`bankUserName` varchar(100) NOT NULL COMMENT '户名',
`bankCardNumber` varchar(30) NOT NULL COMMENT '收款账户',
`money` decimal(10,2) NOT NULL COMMENT '慰问金额',
`occurTime` varchar(30) NOT NULL COMMENT '慰问时间',
`sortNum` int NOT NULL 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_special_condolence_recipient_apply` (`applyId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='特殊慰问被申请人明细';
-- 主表保留原有摘要字段兼容现有列表,money 为整份申请的金额合计。
-- 被申请人的完整信息保存在 special_condolence_recipient 中,不在主表使用 JSON 存储。
-- 新增 PC、H5 菜单,角色授权由管理员另行配置。
START TRANSACTION;
CREATE TEMPORARY TABLE special_condolence_menu_map AS
SELECT id oldId, MD5(CONCAT('special_condolence:', id)) newId
FROM sys_menu
WHERE id IN ('3b49290f7db44130b9f6394a8212321f', '024811fd168e44948e6ab84911fc26bb')
OR (href LIKE '/platform/condolence/%' AND href NOT LIKE '%/branchUnionApproval%');
CREATE TEMPORARY TABLE special_condolence_parent_map (
oldId varchar(32) NOT NULL COMMENT '原父菜单ID',
newId varchar(32) NOT NULL COMMENT '特殊慰问父菜单ID',
PRIMARY KEY (oldId)
);
INSERT INTO special_condolence_parent_map (oldId, newId)
SELECT oldId, newId FROM special_condolence_menu_map;
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 map.newId, COALESCE(parent.newId, m.parentId),
CONCAT('T', SUBSTRING(map.newId, 1, 7)), REPLACE(m.name, '职工慰问', '特殊慰问'),
m.aliasName, m.type, REPLACE(m.href, '/condolence/', '/special_condolence/'), m.target,
m.icon, m.showit, m.disabled,
CASE m.id WHEN '3b49290f7db44130b9f6394a8212321f' THEN 'special_condolence'
WHEN '024811fd168e44948e6ab84911fc26bb' THEN 'h5.special_condolence'
ELSE REPLACE(m.permission, 'condolence', 'special_condolence') END,
REPLACE(m.note, '职工慰问', '特殊慰问'), m.location, m.hasChildren,
m.createdBy, UNIX_TIMESTAMP()*1000, m.updatedBy, UNIX_TIMESTAMP()*1000, m.delFlag,
REPLACE(m.processKey, 'ZGWW', 'TSWW'), m.platform, m.moduleId, m.isQuickEntry,
m.picIcon, IF(m.name = '职工慰问', 't', m.initialPinyinName), m.isRecommendApp, m.isRecommendService
FROM sys_menu m JOIN special_condolence_menu_map map ON map.oldId = m.id
LEFT JOIN special_condolence_parent_map parent ON parent.oldId = m.parentId
WHERE NOT EXISTS (SELECT 1 FROM sys_menu existing WHERE existing.id = map.newId);
-- 父子菜单路径保持树形前缀关系。
UPDATE sys_menu child JOIN sys_menu parent ON parent.id = child.parentId
JOIN special_condolence_menu_map map ON map.newId = child.id
SET child.path = CONCAT(parent.path, RIGHT(child.id, 4));
DROP TEMPORARY TABLE special_condolence_menu_map;
DROP TEMPORARY TABLE special_condolence_parent_map;
-- 权限部分,不要删除
-- SYSADMIN
-- 特殊慰问 web
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('7f4a820d5a394bb8a0a92d6699afe7c8', '4c46696d75ff0eddf5cb57fac3e5d06d');
INSERT INTO sys_role_menu (roleId, menuId)
VALUES ('7f4a820d5a394bb8a0a92d6699afe7c8', '3e97a91e7aa9566cdae94850038a6212'),
('7f4a820d5a394bb8a0a92d6699afe7c8', '6c5be59ffb8d7c524ec72f2a02d6c6d2'),
('7f4a820d5a394bb8a0a92d6699afe7c8', '7f66eb63b6ebd81c5eee9c5c2de2ed98'),
('7f4a820d5a394bb8a0a92d6699afe7c8', '8d5ebaa091eee01abb33e89e3dcc92f8'),
('7f4a820d5a394bb8a0a92d6699afe7c8', '9c37242f50c5fb4a9c1b2b9b9dd0e2fd'),
('7f4a820d5a394bb8a0a92d6699afe7c8', '9f4f850904fe751db1cd13977374f99b'),
('7f4a820d5a394bb8a0a92d6699afe7c8', 'b24a5bef9ccbf7241c5bb85e80352f8f');
-- 特殊慰问 h5
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('7f4a820d5a394bb8a0a92d6699afe7c8', '2145812145ee6548552504b4f5a55ff7');
INSERT INTO sys_role_menu (roleId, menuId)
VALUES ('7f4a820d5a394bb8a0a92d6699afe7c8', '42b4b5f54593cf023961ad1c9ce36f53'),
('7f4a820d5a394bb8a0a92d6699afe7c8', '4f3212a13a54fbb2a082ee77651c9a73'),
('7f4a820d5a394bb8a0a92d6699afe7c8', '739f64c71fe776dc3520ebb2977c2d68'),
('7f4a820d5a394bb8a0a92d6699afe7c8', 'b6c725beaf3bfe9f2b29f46855c45a24'),
('7f4a820d5a394bb8a0a92d6699afe7c8', 'eb3d1b27d51b84df1cebf24e1278e26c');
-- 校工会办公室主任
-- 特殊慰问 web
INSERT INTO sys_role_menu (roleId, menuId)
VALUES
('494ac71eb8b44d0e99e19b7fde6bd469', '4c46696d75ff0eddf5cb57fac3e5d06d'),
('494ac71eb8b44d0e99e19b7fde6bd469', '7f66eb63b6ebd81c5eee9c5c2de2ed98');
-- 特殊慰问 h5
INSERT INTO sys_role_menu (roleId, menuId)
VALUES
('494ac71eb8b44d0e99e19b7fde6bd469', '2145812145ee6548552504b4f5a55ff7'),
('494ac71eb8b44d0e99e19b7fde6bd469', '42b4b5f54593cf023961ad1c9ce36f53');
-- 校工会主席
-- 特殊慰问 web
INSERT INTO sys_role_menu (roleId, menuId)
VALUES
('6aece46b946e4fb9ac4cb15c0cd8c3e6', '4c46696d75ff0eddf5cb57fac3e5d06d'),
('6aece46b946e4fb9ac4cb15c0cd8c3e6', 'b24a5bef9ccbf7241c5bb85e80352f8f');
-- 特殊慰问 h5
INSERT INTO sys_role_menu (roleId, menuId)
VALUES
('6aece46b946e4fb9ac4cb15c0cd8c3e6', '2145812145ee6548552504b4f5a55ff7'),
('6aece46b946e4fb9ac4cb15c0cd8c3e6', 'b6c725beaf3bfe9f2b29f46855c45a24');
-- 校工会主席
-- 特殊慰问 web
INSERT INTO sys_role_menu (roleId, menuId)
VALUES
('b3854469e6f44901b22bb791cb538431', '4c46696d75ff0eddf5cb57fac3e5d06d'),
('b3854469e6f44901b22bb791cb538431', '9c37242f50c5fb4a9c1b2b9b9dd0e2fd');
-- 特殊慰问 h5
INSERT INTO sys_role_menu (roleId, menuId)
VALUES
('b3854469e6f44901b22bb791cb538431', '2145812145ee6548552504b4f5a55ff7'),
('b3854469e6f44901b22bb791cb538431', '739f64c71fe776dc3520ebb2977c2d68');
COMMIT;