feat(approval): 新增业务审批流程及配置管理
- 新增审批配置主子表(biz_approval_config / biz_approval_config_user),支持或签 - 5 个业务模块接入审批: 采购订单/客户报价/供应商报价/发货单/订单异议 - 统一审批动作接口(提交/通过/驳回),status=10 表示审批中 - 新增"待我审批"聚合页面,按业务类型筛选 - 修复 logback 写本地路径报错,去除文件 appender - 修复 Redis SSL 配置在 Spring Boot 4 下需对象格式 - 补齐部分业务表缺失的 update_by/update_time 审计列 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
55
sql/biz_approval_config.sql
Normal file
55
sql/biz_approval_config.sql
Normal file
@@ -0,0 +1,55 @@
|
||||
-- ----------------------------
|
||||
-- 审批负责人配置(或签)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS biz_approval_config_user;
|
||||
DROP TABLE IF EXISTS biz_approval_config;
|
||||
|
||||
CREATE TABLE biz_approval_config (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT,
|
||||
biz_type VARCHAR(64) NOT NULL COMMENT '业务类型: PURCHASE_ORDER/CLIENT_QUOTE/QUOTATION/DELIVERY_ORDER/ORDER_OBJECTION',
|
||||
biz_name VARCHAR(64) NOT NULL COMMENT '业务名称',
|
||||
sign_type CHAR(1) DEFAULT '1' COMMENT '审批方式: 1或签 2会签(预留)',
|
||||
enabled CHAR(1) DEFAULT '1' COMMENT '是否启用 0停用 1启用',
|
||||
remark VARCHAR(255) DEFAULT NULL,
|
||||
create_by VARCHAR(64) DEFAULT '',
|
||||
create_time DATETIME DEFAULT NULL,
|
||||
update_by VARCHAR(64) DEFAULT '',
|
||||
update_time DATETIME DEFAULT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_biz_type (biz_type)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批负责人配置';
|
||||
|
||||
CREATE TABLE biz_approval_config_user (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT,
|
||||
config_id BIGINT NOT NULL COMMENT 'biz_approval_config.id',
|
||||
user_id BIGINT NOT NULL COMMENT 'sys_user.user_id',
|
||||
sort_no INT DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_config (config_id),
|
||||
UNIQUE KEY uk_config_user (config_id, user_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批人(或签)';
|
||||
|
||||
-- 种子数据
|
||||
INSERT INTO biz_approval_config(biz_type,biz_name,sign_type,enabled,create_by,create_time) VALUES
|
||||
('PURCHASE_ORDER', '采购订单', '1','1','admin',NOW()),
|
||||
('CLIENT_QUOTE', '客户报价', '1','1','admin',NOW()),
|
||||
('QUOTATION', '供应商报价', '1','1','admin',NOW()),
|
||||
('DELIVERY_ORDER', '发货单', '1','1','admin',NOW()),
|
||||
('ORDER_OBJECTION', '订单异议', '1','1','admin',NOW());
|
||||
|
||||
-- 字典:审批状态(业务表 status 复用,10=审批中)
|
||||
DELETE FROM sys_dict_type WHERE dict_type='biz_approval_status';
|
||||
INSERT INTO sys_dict_type(dict_name,dict_type,status,create_by,create_time,remark)
|
||||
VALUES('审批状态','biz_approval_status','0','admin',NOW(),'业务单据审批中状态');
|
||||
|
||||
DELETE FROM sys_dict_data WHERE dict_type='biz_approval_status';
|
||||
INSERT INTO sys_dict_data(dict_sort,dict_label,dict_value,dict_type,css_class,list_class,is_default,status,create_by,create_time) VALUES
|
||||
(1,'审批中','10','biz_approval_status','','warning','N','0','admin',NOW()),
|
||||
(2,'已通过','confirmed','biz_approval_status','','success','N','0','admin',NOW()),
|
||||
(3,'已驳回','rejected','biz_approval_status','','danger','N','0','admin',NOW());
|
||||
|
||||
-- 菜单:审批配置
|
||||
DELETE FROM sys_menu WHERE menu_name='审批配置' AND parent_id=2000;
|
||||
INSERT INTO sys_menu(menu_name,parent_id,order_num,path,component,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time)
|
||||
VALUES('审批配置',(SELECT menu_id FROM (SELECT menu_id FROM sys_menu WHERE menu_name='系统管理' AND parent_id=0 LIMIT 1) t),100,
|
||||
'approval','bid/approval/index',1,0,'C','0','0','bid:approval:list','tree','admin',NOW());
|
||||
80
sql/menu_reorganize.sql
Normal file
80
sql/menu_reorganize.sql
Normal file
@@ -0,0 +1,80 @@
|
||||
-- ═══════════════════════════════════════════════════════════════════
|
||||
-- 菜单重组:按业务模块分组到统一父菜单 + 新增审批配置
|
||||
-- ═══════════════════════════════════════════════════════════════════
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- ───────────────────────────────────────────────
|
||||
-- 1. 新建一级业务父菜单(M 类型 = 目录)
|
||||
-- ───────────────────────────────────────────────
|
||||
INSERT IGNORE INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
|
||||
VALUES
|
||||
(2100, '基础数据', 0, 10, 'basedata', NULL, 1, 0, 'M', '0', '0', '', 'tree-table', 'admin', NOW()),
|
||||
(2110, '报价采购', 0, 20, 'quote', NULL, 1, 0, 'M', '0', '0', '', 'money', 'admin', NOW()),
|
||||
(2120, '订单履约', 0, 30, 'fulfill', NULL, 1, 0, 'M', '0', '0', '', 'shopping', 'admin', NOW()),
|
||||
(2130, '系统配置', 0, 90, 'bizconfig',NULL, 1, 0, 'M', '0', '0', '', 'tool', 'admin', NOW());
|
||||
|
||||
-- 统计分析 2019 已存在,保持 order_num
|
||||
UPDATE sys_menu SET order_num = 40 WHERE menu_id = 2019;
|
||||
|
||||
-- ───────────────────────────────────────────────
|
||||
-- 2. 已有子菜单按业务归类到新父菜单
|
||||
-- 用 perms 标识 ,避免依赖具体 menu_id
|
||||
-- ───────────────────────────────────────────────
|
||||
|
||||
-- 基础数据
|
||||
UPDATE sys_menu SET parent_id = 2100, order_num = 1 WHERE perms = 'bid:material:list';
|
||||
UPDATE sys_menu SET parent_id = 2100, order_num = 2 WHERE perms = 'bid:category:list';
|
||||
UPDATE sys_menu SET parent_id = 2100, order_num = 3 WHERE perms = 'bid:client:list';
|
||||
UPDATE sys_menu SET parent_id = 2100, order_num = 4 WHERE perms = 'bid:supplier:list';
|
||||
|
||||
-- 报价采购
|
||||
UPDATE sys_menu SET parent_id = 2110, order_num = 1 WHERE perms = 'bid:rfq:list';
|
||||
UPDATE sys_menu SET parent_id = 2110, order_num = 2 WHERE perms = 'bid:quotation:list';
|
||||
UPDATE sys_menu SET parent_id = 2110, order_num = 3 WHERE perms = 'bid:comparison:list';
|
||||
UPDATE sys_menu SET parent_id = 2110, order_num = 4 WHERE perms = 'bid:purchaseorder:list';
|
||||
UPDATE sys_menu SET parent_id = 2110, order_num = 5 WHERE perms = 'bid:clientquote:list';
|
||||
|
||||
-- 订单履约
|
||||
UPDATE sys_menu SET parent_id = 2120, order_num = 1 WHERE perms = 'bid:order:pending';
|
||||
UPDATE sys_menu SET parent_id = 2120, order_num = 2 WHERE perms = 'bid:order:transit';
|
||||
UPDATE sys_menu SET parent_id = 2120, order_num = 3 WHERE perms = 'bid:order:history';
|
||||
UPDATE sys_menu SET parent_id = 2120, order_num = 4 WHERE perms = 'bid:order:closeDate';
|
||||
UPDATE sys_menu SET parent_id = 2120, order_num = 5 WHERE perms = 'bid:objection:list';
|
||||
UPDATE sys_menu SET parent_id = 2120, order_num = 6 WHERE perms = 'bid:clientDelivery:list';
|
||||
|
||||
-- 兼容旧 perms:order:list(订单履约旧索引页)若存在,放履约组顶部
|
||||
UPDATE sys_menu SET parent_id = 2120, order_num = 0 WHERE perms = 'bid:order:list';
|
||||
|
||||
-- 系统配置 / 业务配置
|
||||
UPDATE sys_menu SET parent_id = 2130, order_num = 2 WHERE perms = 'bid:evaluation:list';
|
||||
UPDATE sys_menu SET parent_id = 2130, order_num = 3 WHERE perms = 'bid:transaction:list';
|
||||
UPDATE sys_menu SET parent_id = 2130, order_num = 4 WHERE perms = 'bid:operationlog:list';
|
||||
UPDATE sys_menu SET parent_id = 2130, order_num = 5 WHERE perms = 'bid:tenant:list';
|
||||
|
||||
-- ───────────────────────────────────────────────
|
||||
-- 3. 新增:审批配置(挂在系统配置下)
|
||||
-- ───────────────────────────────────────────────
|
||||
DELETE FROM sys_menu WHERE perms = 'bid:approval:list';
|
||||
INSERT INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
|
||||
VALUES (2131, '审批配置', 2130, 1, 'approval', 'bid/approval/index', 1, 0, 'C', '0', '0', 'bid:approval:list', 'tree', 'admin', NOW());
|
||||
|
||||
-- 审批配置按钮权限
|
||||
DELETE FROM sys_menu WHERE perms IN ('bid:approval:edit','bid:approval:query');
|
||||
INSERT INTO sys_menu(menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
|
||||
VALUES
|
||||
('查询', 2131, 1, '', NULL, 1, 0, 'F', '0', '0', 'bid:approval:query', '#', 'admin', NOW()),
|
||||
('编辑', 2131, 2, '', NULL, 1, 0, 'F', '0', '0', 'bid:approval:edit', '#', 'admin', NOW());
|
||||
|
||||
-- 给 admin 角色(role_id=1)授权
|
||||
INSERT IGNORE INTO sys_role_menu(role_id, menu_id)
|
||||
SELECT 1, menu_id FROM sys_menu
|
||||
WHERE perms IN ('bid:approval:list','bid:approval:query','bid:approval:edit')
|
||||
OR menu_id IN (2100, 2110, 2120, 2130);
|
||||
|
||||
-- ───────────────────────────────────────────────
|
||||
-- 4. 验证:列出当前一级菜单
|
||||
-- ───────────────────────────────────────────────
|
||||
SELECT menu_id, menu_name, order_num, menu_type, perms
|
||||
FROM sys_menu
|
||||
WHERE parent_id = 0 AND visible = '0' AND status = '0'
|
||||
ORDER BY order_num;
|
||||
Reference in New Issue
Block a user