Files
zhgh_squ/src/main/resources/db/appeal/init_appeal.sql
T

331 lines
17 KiB
SQL

-- 申诉管理初始化脚本
-- 说明:本脚本依赖系统基础表 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`);