-- 申诉管理初始化脚本 -- 说明:本脚本依赖系统基础表 sys_menu、sys_role 已存在;如 sys_role_menu 不存在会自动创建。 SET @now := CAST(UNIX_TIMESTAMP(NOW()) * 1000 AS UNSIGNED); CREATE TABLE IF NOT EXISTS `appeal_type` ( `id` varchar(32) NOT NULL COMMENT 'ID', `name` varchar(100) DEFAULT NULL COMMENT '类型名称', `sort` int DEFAULT 0 COMMENT '排序', `enabled` tinyint(1) DEFAULT 1 COMMENT '是否启用', `remark` varchar(500) 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 `INDEX_APPEAL_TYPE_ENABLED` (`enabled`), KEY `INDEX_APPEAL_TYPE_SORT` (`sort`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='申诉类型'; CREATE TABLE IF NOT EXISTS `appeal_info` ( `id` varchar(32) NOT NULL COMMENT 'ID', `userId` varchar(32) DEFAULT NULL COMMENT '申诉人ID', `userName` varchar(50) DEFAULT NULL COMMENT '申诉人姓名', `loginName` varchar(50) DEFAULT NULL COMMENT '申诉人工号', `sex` varchar(20) DEFAULT NULL COMMENT '性别', `birthday` date DEFAULT NULL COMMENT '出生年月', `political` varchar(100) DEFAULT NULL COMMENT '政治面貌', `unitId` varchar(32) DEFAULT NULL COMMENT '所在单位ID', `unitName` varchar(100) DEFAULT NULL COMMENT '所在单位', `positionName` varchar(100) DEFAULT NULL COMMENT '岗位', `address` varchar(300) DEFAULT NULL COMMENT '住址', `mobile` varchar(100) DEFAULT NULL COMMENT '联系方式', `appealTypeId` varchar(32) DEFAULT NULL COMMENT '申诉类型ID', `appealTypeName` varchar(100) DEFAULT NULL COMMENT '申诉类型名称', `defendantUnitId` varchar(32) DEFAULT NULL COMMENT '被申诉单位ID', `defendantUnitName` varchar(100) DEFAULT NULL COMMENT '被申诉单位', `defendantAddress` varchar(300) DEFAULT NULL COMMENT '被申诉单位地址', `defendantContact` varchar(100) DEFAULT NULL COMMENT '被申诉单位联系方式', `title` varchar(200) DEFAULT NULL COMMENT '申诉标题', `appealMatter` text COMMENT '申诉事项', `reason` text COMMENT '申诉理由', `request` text COMMENT '申诉要求', `applyDate` date DEFAULT NULL COMMENT '申请日期', `signature` varchar(255) DEFAULT NULL COMMENT '申诉人签名', `files` json COMMENT '附件', `state` varchar(50) DEFAULT NULL COMMENT '业务状态', `acceptUserId` varchar(32) DEFAULT NULL COMMENT '受理人ID', `acceptUserName` varchar(50) DEFAULT NULL COMMENT '受理人姓名', `acceptTime` datetime DEFAULT NULL COMMENT '受理时间', `decisionContent` text COMMENT '处理决定', `legalBasis` text COMMENT '事实理由及适用依据', `decisionDate` date DEFAULT NULL COMMENT '作出决定日期', `decisionFiles` json COMMENT '决定书附件', `executeUserId` varchar(32) DEFAULT NULL COMMENT '执行人ID', `executeUserName` varchar(50) DEFAULT NULL COMMENT '执行人姓名', `executeTime` datetime DEFAULT NULL COMMENT '执行时间', `executeContent` text COMMENT '执行情况', `executeFiles` json 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 `INDEX_APPEAL_INFO_USER` (`userId`), KEY `INDEX_APPEAL_INFO_UNIT` (`unitId`), KEY `INDEX_APPEAL_INFO_TYPE` (`appealTypeId`), KEY `INDEX_APPEAL_INFO_DEFENDANT_UNIT` (`defendantUnitId`), KEY `INDEX_APPEAL_INFO_STATE` (`state`), KEY `INDEX_APPEAL_INFO_APPLY_DATE` (`applyDate`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='教职工申诉'; CREATE TABLE IF NOT EXISTS `sys_role_menu` ( `roleId` varchar(32) NOT NULL, `menuId` varchar(32) NOT NULL, KEY `INDEX_SYS_ROLE_MENU_ROLE` (`roleId`), KEY `INDEX_SYS_ROLE_MENU_MENU` (`menuId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关系'; INSERT INTO `sys_role` (`id`, `name`, `code`, `aliasName`, `disabled`, `unitid`, `note`, `sort`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c002000000000000000000000001', '申诉处理委员会成员', 'APPEAL_COMMITTEE_MEMBER', 'AppealCommitteeMember', 0, NULL, '申诉受理环节处理角色', 60, '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_role` WHERE `code` = 'APPEAL_COMMITTEE_MEMBER'); 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`) SELECT 'a0e9c001000000000000000000000001', '', '9901', '申诉管理', 'Appeal', 'menu', '', '', 'ti-comments', 1, 0, 'appeal', NULL, 9901, 1, '', @now, '', @now, 0, 'PC' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal' OR `path` = '9901'); 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`) SELECT 'a0e9c001000000000000000000000002', parent.`id`, '99010001', '申诉类型', 'AppealType', 'menu', '/platform/appeal/type', 'data-pjax', '', 1, 0, 'appeal.type', NULL, 990101, 0, '', @now, '', @now, 0, 'PC' FROM `sys_menu` parent WHERE parent.`permission` = 'appeal' AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.type' OR `path` = '99010001'); 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`) SELECT 'a0e9c001000000000000000000000003', parent.`id`, '99010002', '提交申诉', 'AppealWrite', 'menu', '/platform/appeal/write', 'data-pjax', '', 1, 0, 'appeal.write', NULL, 990102, 0, '', @now, '', @now, 0, 'PC' FROM `sys_menu` parent WHERE parent.`permission` = 'appeal' AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.write' OR `path` = '99010002'); 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`) SELECT 'a0e9c001000000000000000000000004', parent.`id`, '99010003', '我的申诉', 'AppealMine', 'menu', '/platform/appeal/mine', 'data-pjax', '', 1, 0, 'appeal.mine', NULL, 990103, 0, '', @now, '', @now, 0, 'PC' FROM `sys_menu` parent WHERE parent.`permission` = 'appeal' AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.mine' OR `path` = '99010003'); 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`) SELECT 'a0e9c001000000000000000000000005', parent.`id`, '99010004', '申诉受理', 'AppealAccept', 'menu', '/platform/appeal/accept', 'data-pjax', '', 1, 0, 'appeal.accept', NULL, 990104, 0, '', @now, '', @now, 0, 'PC' FROM `sys_menu` parent WHERE parent.`permission` = 'appeal' AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.accept' OR `path` = '99010004'); 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`) SELECT 'a0e9c001000000000000000000000006', parent.`id`, '99010005', '申诉执行', 'AppealExecute', 'menu', '/platform/appeal/execute', 'data-pjax', '', 1, 0, 'appeal.execute', NULL, 990105, 0, '', @now, '', @now, 0, 'PC' FROM `sys_menu` parent WHERE parent.`permission` = 'appeal' AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.execute' OR `path` = '99010005'); 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`) SELECT 'a0e9c001000000000000000000000007', parent.`id`, '99010006', '查询统计', 'AppealQuery', 'menu', '/platform/appeal/query', 'data-pjax', '', 1, 0, 'appeal.query', NULL, 990106, 0, '', @now, '', @now, 0, 'PC' FROM `sys_menu` parent WHERE parent.`permission` = 'appeal' AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.query' OR `path` = '99010006'); UPDATE `sys_menu` SET `platform` = 'PC' WHERE `permission` IN ('appeal', 'appeal.type', 'appeal.write', 'appeal.mine', 'appeal.accept', 'appeal.execute', 'appeal.query') AND (`platform` IS NULL OR `platform` = ''); INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c003000000000000000000000001', '处分', 1, 1, NULL, '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '处分'); INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c003000000000000000000000002', '岗位聘用', 2, 1, NULL, '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '岗位聘用'); INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c003000000000000000000000003', '撤销奖励', 3, 1, NULL, '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '撤销奖励'); INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c003000000000000000000000004', '考核结果定为基本合格或不合格', 4, 1, NULL, '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '考核结果定为基本合格或不合格'); INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c003000000000000000000000005', '未按国家规定确定或扣减工资福利待遇', 5, 1, NULL, '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '未按国家规定确定或扣减工资福利待遇'); INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c003000000000000000000000006', '法律法规和规章制度规定可以提出申诉的其他事项', 6, 1, NULL, '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '法律法规和规章制度规定可以提出申诉的其他事项'); /* todo 系统上线时手动录入工作流程 INSERT INTO `wf_process_category` (`id`, `name`, `picIcon`, `icon`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'a0e9c004000000000000000000000001', '申诉管理', NULL, 'ti-comments', '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `wf_process_category` WHERE `id` = 'a0e9c004000000000000000000000001' OR `name` = '申诉管理'); SET @appeal_flow_json := '{ "name": "SSGL", "displayName": "申诉管理", "type": "appeal", "category": "a0e9c004000000000000000000000001", "description": "教职工申诉审核流程", "instanceUrl": "/platform/appeal/write", "instanceViewUrl": "/platform/appeal/mine", "nodes": [ { "id": "startTask", "type": "snaker:start", "x": 120, "y": 160, "text": {"value": "提交申诉"}, "properties": {"width": 90, "height": 50} }, { "id": "appealAccept", "type": "snaker:task", "x": 330, "y": 160, "text": {"value": "受理"}, "properties": { "width": 120, "height": 60, "form": "/platform/appeal/accept", "taskType": 0, "performType": 0, "assignmentHandler": "com.budwk.app.flow.handler.FlowAppealCommitteeAssignmentHandler" } }, { "id": "appealExecute", "type": "snaker:task", "x": 560, "y": 160, "text": {"value": "执行"}, "properties": { "width": 120, "height": 60, "form": "/platform/appeal/execute", "taskType": 0, "performType": 0, "assignmentHandler": "com.budwk.app.flow.handler.FlowAppealDefendantUnitAssignmentHandler" } }, { "id": "endTask", "type": "snaker:end", "x": 780, "y": 160, "text": {"value": "结束"}, "properties": {"width": 90, "height": 50} } ], "edges": [ { "id": "edge_start_accept", "type": "polyline", "sourceNodeId": "startTask", "targetNodeId": "appealAccept", "properties": {}, "text": {"value": ""}, "startPoint": {"x": 165, "y": 160}, "endPoint": {"x": 270, "y": 160}, "pointsList": [{"x": 165, "y": 160}, {"x": 270, "y": 160}] }, { "id": "edge_accept_execute", "type": "polyline", "sourceNodeId": "appealAccept", "targetNodeId": "appealExecute", "properties": {"expr": "#submitType==1"}, "text": {"value": "受理"}, "startPoint": {"x": 390, "y": 160}, "endPoint": {"x": 500, "y": 160}, "pointsList": [{"x": 390, "y": 160}, {"x": 500, "y": 160}] }, { "id": "edge_accept_end", "type": "polyline", "sourceNodeId": "appealAccept", "targetNodeId": "endTask", "properties": {"expr": "#submitType==2"}, "text": {"value": "不予受理"}, "startPoint": {"x": 330, "y": 220}, "endPoint": {"x": 780, "y": 220}, "pointsList": [{"x": 330, "y": 220}, {"x": 780, "y": 220}, {"x": 780, "y": 185}] }, { "id": "edge_execute_end", "type": "polyline", "sourceNodeId": "appealExecute", "targetNodeId": "endTask", "properties": {}, "text": {"value": ""}, "startPoint": {"x": 620, "y": 160}, "endPoint": {"x": 735, "y": 160}, "pointsList": [{"x": 620, "y": 160}, {"x": 735, "y": 160}] } ] }'; INSERT INTO `wf_process_define` (`name`, `displayName`, `type`, `category`, `instanceUrl`, `instanceViewUrl`, `icon`, `state`, `content`, `version`, `pinyinName`, `description`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT 'SSGL', '申诉管理', 'appeal', 'a0e9c004000000000000000000000001', '/platform/appeal/write', '/platform/appeal/mine', 'ti-comments', 1, @appeal_flow_json, 1, 'S', '教职工申诉审核流程', '', @now, '', @now, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `wf_process_define` WHERE `name` = 'SSGL'); UPDATE `wf_process_define` SET `state` = 1, `type` = 'appeal', `category` = 'a0e9c004000000000000000000000001', `pinyinName` = 'S', `icon` = 'ti-comments', `updatedAt` = @now WHERE `name` = 'SSGL' AND (`state` IS NULL OR `state` <> 1 OR IFNULL(`type`, '') <> 'appeal' OR IFNULL(`category`, '') <> 'a0e9c004000000000000000000000001' OR IFNULL(`pinyinName`, '') <> 'S' OR IFNULL(`icon`, '') <> 'ti-comments'); UPDATE `wf_process_define` SET `content` = @appeal_flow_json, `displayName` = IFNULL(`displayName`, '申诉管理'), `instanceUrl` = IFNULL(`instanceUrl`, '/platform/appeal/write'), `instanceViewUrl` = IFNULL(`instanceViewUrl`, '/platform/appeal/mine'), `updatedAt` = @now WHERE `name` = 'SSGL' AND (`content` IS NULL OR `content` = '');*/ /* INSERT INTO `sys_role_menu` (`roleId`, `menuId`) SELECT r.`id`, m.`id` FROM `sys_role` r JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.write', 'appeal.mine') WHERE r.`code` = 'MEMBER' AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); INSERT INTO `sys_role_menu` (`roleId`, `menuId`) SELECT r.`id`, m.`id` FROM `sys_role` r JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.accept', 'appeal.query') WHERE r.`code` = 'APPEAL_COMMITTEE_MEMBER' AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); INSERT INTO `sys_role_menu` (`roleId`, `menuId`) SELECT r.`id`, m.`id` FROM `sys_role` r JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.execute', 'appeal.query') WHERE r.`code` = 'BRANCH_UNION_ADMIN' AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); INSERT INTO `sys_role_menu` (`roleId`, `menuId`) SELECT r.`id`, m.`id` FROM `sys_role` r JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.type', 'appeal.write', 'appeal.mine', 'appeal.accept', 'appeal.execute', 'appeal.query') WHERE r.`code` IN ('SYSADMIN', 'SCHOOL_UNION_ADMIN', 'SCHOOL_UNION_DC_ADMIN') AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); */ INSERT INTO `sys_role_menu` (`roleId`, `menuId`) SELECT r.`id`, m.`id` FROM `sys_role` r JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.type', 'appeal.write', 'appeal.mine', 'appeal.accept', 'appeal.execute', 'appeal.query') WHERE r.`code` IN ('SYSADMIN') AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`);