-- 测试审批流程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值),说明我们的修复有效 -- 如果测试失败,请检查是否还有其他问题