wuzhen update
This commit is contained in:
1 parent
1da0a6743f
commit
6a3246d98c
39 files changed
+5661
-667
No files matched your search
@@ -0,0 +1,201 @@
|
||||
-- 修复审批记录数据脚本
|
||||
-- 问题:审批人设置错误(使用申报人作为审批人)
|
||||
-- 解决:删除错误记录,为submitted和approving状态的申报重新创建审批记录
|
||||
|
||||
-- ============================================
|
||||
-- 1. 备份现有错误数据(可选)
|
||||
-- ============================================
|
||||
/*
|
||||
CREATE TABLE cw_approval_record_backup_20250801 AS
|
||||
SELECT * FROM cw_approval_record WHERE 1=1;
|
||||
*/
|
||||
|
||||
-- ============================================
|
||||
-- 2. 删除错误的审批记录
|
||||
-- ============================================
|
||||
-- 删除审批人是申报人自己的错误记录
|
||||
DELETE ar FROM cw_approval_record ar
|
||||
INNER JOIN cw_project_application pa ON ar.application_id = pa.id
|
||||
WHERE ar.approver_id = pa.create_by;
|
||||
|
||||
SELECT '删除错误审批记录完成' as status;
|
||||
|
||||
-- ============================================
|
||||
-- 3. 检查需要重新创建审批记录的申报
|
||||
-- ============================================
|
||||
SELECT
|
||||
id,
|
||||
application_no,
|
||||
project_name,
|
||||
approval_status,
|
||||
department_id,
|
||||
'需要重新创建审批记录' as note
|
||||
FROM cw_project_application
|
||||
WHERE approval_status IN ('submitted', 'approving')
|
||||
AND deleted = 0
|
||||
ORDER BY submit_time DESC;
|
||||
|
||||
-- ============================================
|
||||
-- 4. 为教务处申报创建正确的审批记录(jwc001作为部门审批人)
|
||||
-- ============================================
|
||||
|
||||
-- 获取需要处理的申报ID
|
||||
SET @dept_id = 1938484570826956801; -- 教务处
|
||||
SET @dept_approver_id = 2101; -- jwc001 (教务处处长江建)
|
||||
SET @finance_approver_id = 1; -- admin (临时财务审批人)
|
||||
SET @leader_approver_id = 1; -- admin (临时领导审批人)
|
||||
|
||||
-- 为每个submitted状态的申报创建审批记录
|
||||
INSERT INTO cw_approval_record (
|
||||
id, application_id, application_no, node_code, node_name, node_order,
|
||||
approver_id, approver_name, is_delegate, original_approver_id, original_approver_name,
|
||||
node_status, approve_action, approve_opinion, start_time, end_time, expect_finish_time,
|
||||
is_overtime, config_id, config_snapshot, create_by, create_time, update_by, update_time,
|
||||
create_dept, tenant_id
|
||||
)
|
||||
SELECT
|
||||
-- 为部门审批记录生成ID
|
||||
CONCAT(pa.id, '01') as id,
|
||||
pa.id as application_id,
|
||||
pa.application_no,
|
||||
'dept_approve' as node_code,
|
||||
'部门审批' as node_name,
|
||||
1 as node_order,
|
||||
@dept_approver_id as approver_id,
|
||||
'教务处处长江建' as approver_name,
|
||||
0 as is_delegate,
|
||||
NULL as original_approver_id,
|
||||
NULL as original_approver_name,
|
||||
'waiting' as node_status,
|
||||
NULL as approve_action,
|
||||
NULL as approve_opinion,
|
||||
NOW() as start_time,
|
||||
NULL as end_time,
|
||||
NULL as expect_finish_time,
|
||||
0 as is_overtime,
|
||||
NULL as config_id,
|
||||
NULL as config_snapshot,
|
||||
pa.create_by as create_by,
|
||||
NOW() as create_time,
|
||||
pa.create_by as update_by,
|
||||
NOW() as update_time,
|
||||
pa.create_dept as create_dept,
|
||||
'000000' as tenant_id
|
||||
FROM cw_project_application pa
|
||||
WHERE pa.department_id = @dept_id
|
||||
AND pa.approval_status IN ('submitted', 'approving')
|
||||
AND pa.deleted = 0;
|
||||
|
||||
-- 为每个申报创建财务审批记录(pending状态)
|
||||
INSERT INTO cw_approval_record (
|
||||
id, application_id, application_no, node_code, node_name, node_order,
|
||||
approver_id, approver_name, is_delegate, original_approver_id, original_approver_name,
|
||||
node_status, approve_action, approve_opinion, start_time, end_time, expect_finish_time,
|
||||
is_overtime, config_id, config_snapshot, create_by, create_time, update_by, update_time,
|
||||
create_dept, tenant_id
|
||||
)
|
||||
SELECT
|
||||
-- 为财务审批记录生成ID
|
||||
CONCAT(pa.id, '02') as id,
|
||||
pa.id as application_id,
|
||||
pa.application_no,
|
||||
'finance_approve' as node_code,
|
||||
'财务审批' as node_name,
|
||||
2 as node_order,
|
||||
@finance_approver_id as approver_id,
|
||||
'系统管理员' as approver_name,
|
||||
0 as is_delegate,
|
||||
NULL as original_approver_id,
|
||||
NULL as original_approver_name,
|
||||
'pending' as node_status,
|
||||
NULL as approve_action,
|
||||
NULL as approve_opinion,
|
||||
NOW() as start_time,
|
||||
NULL as end_time,
|
||||
NULL as expect_finish_time,
|
||||
0 as is_overtime,
|
||||
NULL as config_id,
|
||||
NULL as config_snapshot,
|
||||
pa.create_by as create_by,
|
||||
NOW() as create_time,
|
||||
pa.create_by as update_by,
|
||||
NOW() as update_time,
|
||||
pa.create_dept as create_dept,
|
||||
'000000' as tenant_id
|
||||
FROM cw_project_application pa
|
||||
WHERE pa.department_id = @dept_id
|
||||
AND pa.approval_status IN ('submitted', 'approving')
|
||||
AND pa.deleted = 0;
|
||||
|
||||
-- 为每个申报创建领导审批记录(pending状态)
|
||||
INSERT INTO cw_approval_record (
|
||||
id, application_id, application_no, node_code, node_name, node_order,
|
||||
approver_id, approver_name, is_delegate, original_approver_id, original_approver_name,
|
||||
node_status, approve_action, approve_opinion, start_time, end_time, expect_finish_time,
|
||||
is_overtime, config_id, config_snapshot, create_by, create_time, update_by, update_time,
|
||||
create_dept, tenant_id
|
||||
)
|
||||
SELECT
|
||||
-- 为领导审批记录生成ID
|
||||
CONCAT(pa.id, '03') as id,
|
||||
pa.id as application_id,
|
||||
pa.application_no,
|
||||
'leader_approve' as node_code,
|
||||
'领导审批' as node_name,
|
||||
3 as node_order,
|
||||
@leader_approver_id as approver_id,
|
||||
'系统管理员' as approver_name,
|
||||
0 as is_delegate,
|
||||
NULL as original_approver_id,
|
||||
NULL as original_approver_name,
|
||||
'pending' as node_status,
|
||||
NULL as approve_action,
|
||||
NULL as approve_opinion,
|
||||
NOW() as start_time,
|
||||
NULL as end_time,
|
||||
NULL as expect_finish_time,
|
||||
0 as is_overtime,
|
||||
NULL as config_id,
|
||||
NULL as config_snapshot,
|
||||
pa.create_by as create_by,
|
||||
NOW() as create_time,
|
||||
pa.create_by as update_by,
|
||||
NOW() as update_time,
|
||||
pa.create_dept as create_dept,
|
||||
'000000' as tenant_id
|
||||
FROM cw_project_application pa
|
||||
WHERE pa.department_id = @dept_id
|
||||
AND pa.approval_status IN ('submitted', 'approving')
|
||||
AND pa.deleted = 0;
|
||||
|
||||
-- ============================================
|
||||
-- 5. 验证修复结果
|
||||
-- ============================================
|
||||
|
||||
-- 检查审批记录是否正确创建
|
||||
SELECT
|
||||
ar.application_id,
|
||||
ar.application_no,
|
||||
ar.node_code,
|
||||
ar.node_name,
|
||||
ar.node_status,
|
||||
ar.approver_id,
|
||||
ar.approver_name,
|
||||
pa.approval_status
|
||||
FROM cw_approval_record ar
|
||||
INNER JOIN cw_project_application pa ON ar.application_id = pa.id
|
||||
WHERE pa.department_id = @dept_id
|
||||
AND pa.approval_status IN ('submitted', 'approving')
|
||||
ORDER BY ar.application_id, ar.node_order;
|
||||
|
||||
-- 统计修复结果
|
||||
SELECT
|
||||
'修复完成' as status,
|
||||
COUNT(DISTINCT ar.application_id) as fixed_applications,
|
||||
COUNT(*) as total_approval_records
|
||||
FROM cw_approval_record ar
|
||||
INNER JOIN cw_project_application pa ON ar.application_id = pa.id
|
||||
WHERE pa.department_id = @dept_id
|
||||
AND pa.approval_status IN ('submitted', 'approving');
|
||||
|
||||
SELECT '数据修复脚本执行完成' as result;
|
||||
@@ -0,0 +1,32 @@
|
||||
-- 分管领导审批管理菜单配置(最终修正版本)
|
||||
-- 执行顺序:在现有财务管理模块下添加
|
||||
|
||||
-- 1. 分管领导审批管理菜单
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES (6300, '分管领导审批', 6000, 4, 'leaderApproval', 'cw/leaderApproval/index', '', 1, 0, 'C', '0', '0', 'cw:approval:leader', 'ele-User', 103, 1, now(), 1, now(), '财务项目申报分管领导审批管理');
|
||||
|
||||
-- 2. 分管领导审批功能权限
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES
|
||||
(6301, '分管领导审批查询', 6300, 1, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:leader', '#', 103, 1, now(), 1, now(), '分管领导审批查询权限'),
|
||||
(6302, '分管领导审批操作', 6300, 2, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:leader', '#', 103, 1, now(), 1, now(), '分管领导审批操作权限'),
|
||||
(6303, '分管领导审批详情', 6300, 3, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:query', '#', 103, 1, now(), 1, now(), '分管领导审批详情权限'),
|
||||
(6304, '分管领导审批导出', 6300, 4, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:export', '#', 103, 1, now(), 1, now(), '分管领导审批导出权限');
|
||||
|
||||
-- 3. 如果需要给特定角色分配权限,请执行以下SQL(可选)
|
||||
-- 注意:请根据实际角色ID调整,以下使用示例角色ID 2(普通角色)
|
||||
|
||||
-- 插入角色菜单关联(示例:给角色ID为2的角色分配分管领导审批权限)
|
||||
-- INSERT INTO sys_role_menu (role_id, menu_id) VALUES
|
||||
-- (2, 6300), -- 分管领导审批主菜单
|
||||
-- (2, 6301), -- 查询权限
|
||||
-- (2, 6302), -- 操作权限
|
||||
-- (2, 6303), -- 详情权限
|
||||
-- (2, 6304); -- 导出权限
|
||||
|
||||
-- 4. 添加字典数据(如果需要新的审批状态字典)
|
||||
INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES
|
||||
(null, '000000', 7, '财务审批中', 'finance_approving', 'cw_approval_status', '', 'warning', 'N', 103, 1, now(), 1, now(), '分管领导审批通过,财务审批中');
|
||||
|
||||
-- 执行完成后,建议重新登录系统以刷新菜单权限
|
||||
@@ -0,0 +1,32 @@
|
||||
-- 分管领导审批管理菜单配置(修正版本)
|
||||
-- 执行顺序:在现有财务管理模块下添加
|
||||
|
||||
-- 1. 分管领导审批管理菜单
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES (6300, '分管领导审批', 6000, 4, 'leaderApproval', 'cw/leaderApproval/index', '', 1, 0, 'C', '0', '0', 'cw:approval:leader', 'ele-User', 103, 1, now(), 1, now(), '财务项目申报分管领导审批管理');
|
||||
|
||||
-- 2. 分管领导审批功能权限
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES
|
||||
(6301, '分管领导审批查询', 6300, 1, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:leader', '#', 103, 1, now(), 1, now(), '分管领导审批查询权限'),
|
||||
(6302, '分管领导审批操作', 6300, 2, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:leader', '#', 103, 1, now(), 1, now(), '分管领导审批操作权限'),
|
||||
(6303, '分管领导审批详情', 6300, 3, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:query', '#', 103, 1, now(), 1, now(), '分管领导审批详情权限'),
|
||||
(6304, '分管领导审批导出', 6300, 4, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:export', '#', 103, 1, now(), 1, now(), '分管领导审批导出权限');
|
||||
|
||||
-- 3. 如果需要给特定角色分配权限,请执行以下SQL(可选)
|
||||
-- 注意:请根据实际角色ID调整,以下使用示例角色ID 2(普通角色)
|
||||
|
||||
-- 插入角色菜单关联(示例:给角色ID为2的角色分配分管领导审批权限)
|
||||
-- INSERT INTO sys_role_menu (role_id, menu_id) VALUES
|
||||
-- (2, 6300), -- 分管领导审批主菜单
|
||||
-- (2, 6301), -- 查询权限
|
||||
-- (2, 6302), -- 操作权限
|
||||
-- (2, 6303), -- 详情权限
|
||||
-- (2, 6304); -- 导出权限
|
||||
|
||||
-- 4. 添加字典数据(如果需要新的审批状态字典)
|
||||
INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES
|
||||
(null, 7, '财务审批中', 'finance_approving', 'cw_approval_status', '', 'warning', 'N', '0', 1, now(), 1, now(), '分管领导审批通过,财务审批中');
|
||||
|
||||
-- 执行完成后,建议重新登录系统以刷新菜单权限
|
||||
@@ -0,0 +1,32 @@
|
||||
-- 分管领导审批管理菜单配置
|
||||
-- 执行顺序:在现有财务管理模块下添加
|
||||
|
||||
-- 1. 分管领导审批管理菜单
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark, tenant_id)
|
||||
VALUES (6300, '分管领导审批', 6000, 4, 'leaderApproval', 'cw/leaderApproval/index', '', 1, 0, 'C', '0', '0', 'cw:approval:leader', 'ele-User', 1, now(), 1, now(), '财务项目申报分管领导审批管理', '000000');
|
||||
|
||||
-- 2. 分管领导审批功能权限
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark, tenant_id)
|
||||
VALUES
|
||||
(6301, '分管领导审批查询', 6300, 1, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:leader', '#', 1, now(), 1, now(), '分管领导审批查询权限', '000000'),
|
||||
(6302, '分管领导审批操作', 6300, 2, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:leader', '#', 1, now(), 1, now(), '分管领导审批操作权限', '000000'),
|
||||
(6303, '分管领导审批详情', 6300, 3, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:query', '#', 1, now(), 1, now(), '分管领导审批详情权限', '000000'),
|
||||
(6304, '分管领导审批导出', 6300, 4, '#', '', '', 1, 0, 'F', '0', '0', 'cw:approval:export', '#', 1, now(), 1, now(), '分管领导审批导出权限', '000000');
|
||||
|
||||
-- 3. 如果需要给特定角色分配权限,请执行以下SQL(可选)
|
||||
-- 注意:请根据实际角色ID调整,以下使用示例角色ID 2(普通角色)
|
||||
|
||||
-- 插入角色菜单关联(示例:给角色ID为2的角色分配分管领导审批权限)
|
||||
-- INSERT INTO sys_role_menu (role_id, menu_id) VALUES
|
||||
-- (2, 6300), -- 分管领导审批主菜单
|
||||
-- (2, 6301), -- 查询权限
|
||||
-- (2, 6302), -- 操作权限
|
||||
-- (2, 6303), -- 详情权限
|
||||
-- (2, 6304); -- 导出权限
|
||||
|
||||
-- 4. 添加字典数据(如果需要新的审批状态字典)
|
||||
INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark, tenant_id)
|
||||
VALUES
|
||||
(null, 7, '财务审批中', 'finance_approving', 'cw_approval_status', '', 'warning', 'N', '0', 1, now(), 1, now(), '分管领导审批通过,财务审批中', '000000');
|
||||
|
||||
-- 执行完成后,建议重新登录系统以刷新菜单权限
|
||||
@@ -0,0 +1,76 @@
|
||||
-- 测试审批流程SQL脚本
|
||||
-- 用于验证 start_time 字段修复是否有效
|
||||
|
||||
-- 1. 清理测试数据
|
||||
DELETE FROM cw_approval_record WHERE application_no LIKE 'TEST%';
|
||||
DELETE FROM cw_project_application WHERE application_no LIKE 'TEST%';
|
||||
|
||||
-- 2. 创建测试项目申报
|
||||
INSERT INTO cw_project_application (
|
||||
id, application_no, project_name, principal, contact_phone,
|
||||
department_id, department_name, total_investment, budget_year,
|
||||
start_date, end_date, project_description, expected_benefits,
|
||||
approval_status, create_by, create_time, update_by, update_time,
|
||||
create_dept, tenant_id, deleted
|
||||
) VALUES (
|
||||
9999999999999999, 'TEST20250801001', '测试项目申报', '测试用户', '13800000000',
|
||||
103, '教务处', 100000.00, '2025',
|
||||
'2025-01-01', '2025-12-31', '这是一个测试项目', '预期效益很好',
|
||||
'submitted', 1, NOW(), 1, NOW(),
|
||||
103, '000000', 0
|
||||
);
|
||||
|
||||
-- 3. 手动创建审批记录(模拟我们的批量插入逻辑)
|
||||
INSERT INTO cw_approval_record (
|
||||
id, application_id, application_no, node_code, node_name, node_order,
|
||||
approver_id, approver_name, is_delegate, original_approver_id, original_approver_name,
|
||||
node_status, approve_action, approve_opinion, start_time, end_time, expect_finish_time,
|
||||
is_overtime, config_id, config_snapshot, create_by, create_time, update_by, update_time,
|
||||
create_dept, tenant_id
|
||||
) VALUES
|
||||
(9999999999999991, 9999999999999999, 'TEST20250801001', 'dept_approve', '部门审批', 1,
|
||||
1, 'admin_部门审批', 0, NULL, NULL,
|
||||
'waiting', NULL, NULL, NOW(), NULL, NULL,
|
||||
0, NULL, NULL, 1, NOW(), 1, NOW(),
|
||||
103, '000000'),
|
||||
(9999999999999992, 9999999999999999, 'TEST20250801001', 'finance_approve', '财务审批', 2,
|
||||
1, 'admin_财务审批', 0, NULL, NULL,
|
||||
'pending', NULL, NULL, NOW(), NULL, NULL,
|
||||
0, NULL, NULL, 1, NOW(), 1, NOW(),
|
||||
103, '000000'),
|
||||
(9999999999999993, 9999999999999999, 'TEST20250801001', 'leader_approve', '领导审批', 3,
|
||||
1, 'admin_领导审批', 0, NULL, NULL,
|
||||
'pending', NULL, NULL, NOW(), NULL, NULL,
|
||||
0, NULL, NULL, 1, NOW(), 1, NOW(),
|
||||
103, '000000');
|
||||
|
||||
-- 4. 验证插入结果
|
||||
SELECT
|
||||
'=== 测试结果验证 ===' as title,
|
||||
COUNT(*) as total_records,
|
||||
COUNT(CASE WHEN start_time IS NOT NULL THEN 1 END) as records_with_start_time,
|
||||
COUNT(CASE WHEN start_time IS NULL THEN 1 END) as records_with_null_start_time
|
||||
FROM cw_approval_record
|
||||
WHERE application_no = 'TEST20250801001';
|
||||
|
||||
-- 5. 显示详细记录
|
||||
SELECT
|
||||
node_code,
|
||||
node_name,
|
||||
node_status,
|
||||
approver_name,
|
||||
start_time,
|
||||
CASE
|
||||
WHEN start_time IS NULL THEN '❌ NULL (问题未修复)'
|
||||
ELSE '✅ 有值 (修复成功)'
|
||||
END as start_time_status
|
||||
FROM cw_approval_record
|
||||
WHERE application_no = 'TEST20250801001'
|
||||
ORDER BY node_order;
|
||||
|
||||
-- 6. 清理测试数据
|
||||
-- DELETE FROM cw_approval_record WHERE application_no = 'TEST20250801001';
|
||||
-- DELETE FROM cw_project_application WHERE application_no = 'TEST20250801001';
|
||||
|
||||
-- 如果上述测试成功(所有记录都有start_time值),说明我们的修复有效
|
||||
-- 如果测试失败,请检查是否还有其他问题
|
||||
Reference in new issue
Block a user