test-approval-process.sql 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. -- 测试审批流程SQL脚本
  2. -- 用于验证 start_time 字段修复是否有效
  3. -- 1. 清理测试数据
  4. DELETE FROM cw_approval_record WHERE application_no LIKE 'TEST%';
  5. DELETE FROM cw_project_application WHERE application_no LIKE 'TEST%';
  6. -- 2. 创建测试项目申报
  7. INSERT INTO cw_project_application (
  8. id, application_no, project_name, principal, contact_phone,
  9. department_id, department_name, total_investment, budget_year,
  10. start_date, end_date, project_description, expected_benefits,
  11. approval_status, create_by, create_time, update_by, update_time,
  12. create_dept, tenant_id, deleted
  13. ) VALUES (
  14. 9999999999999999, 'TEST20250801001', '测试项目申报', '测试用户', '13800000000',
  15. 103, '教务处', 100000.00, '2025',
  16. '2025-01-01', '2025-12-31', '这是一个测试项目', '预期效益很好',
  17. 'submitted', 1, NOW(), 1, NOW(),
  18. 103, '000000', 0
  19. );
  20. -- 3. 手动创建审批记录(模拟我们的批量插入逻辑)
  21. INSERT INTO cw_approval_record (
  22. id, application_id, application_no, node_code, node_name, node_order,
  23. approver_id, approver_name, is_delegate, original_approver_id, original_approver_name,
  24. node_status, approve_action, approve_opinion, start_time, end_time, expect_finish_time,
  25. is_overtime, config_id, config_snapshot, create_by, create_time, update_by, update_time,
  26. create_dept, tenant_id
  27. ) VALUES
  28. (9999999999999991, 9999999999999999, 'TEST20250801001', 'dept_approve', '部门审批', 1,
  29. 1, 'admin_部门审批', 0, NULL, NULL,
  30. 'waiting', NULL, NULL, NOW(), NULL, NULL,
  31. 0, NULL, NULL, 1, NOW(), 1, NOW(),
  32. 103, '000000'),
  33. (9999999999999992, 9999999999999999, 'TEST20250801001', 'finance_approve', '财务审批', 2,
  34. 1, 'admin_财务审批', 0, NULL, NULL,
  35. 'pending', NULL, NULL, NOW(), NULL, NULL,
  36. 0, NULL, NULL, 1, NOW(), 1, NOW(),
  37. 103, '000000'),
  38. (9999999999999993, 9999999999999999, 'TEST20250801001', 'leader_approve', '领导审批', 3,
  39. 1, 'admin_领导审批', 0, NULL, NULL,
  40. 'pending', NULL, NULL, NOW(), NULL, NULL,
  41. 0, NULL, NULL, 1, NOW(), 1, NOW(),
  42. 103, '000000');
  43. -- 4. 验证插入结果
  44. SELECT
  45. '=== 测试结果验证 ===' as title,
  46. COUNT(*) as total_records,
  47. COUNT(CASE WHEN start_time IS NOT NULL THEN 1 END) as records_with_start_time,
  48. COUNT(CASE WHEN start_time IS NULL THEN 1 END) as records_with_null_start_time
  49. FROM cw_approval_record
  50. WHERE application_no = 'TEST20250801001';
  51. -- 5. 显示详细记录
  52. SELECT
  53. node_code,
  54. node_name,
  55. node_status,
  56. approver_name,
  57. start_time,
  58. CASE
  59. WHEN start_time IS NULL THEN '❌ NULL (问题未修复)'
  60. ELSE '✅ 有值 (修复成功)'
  61. END as start_time_status
  62. FROM cw_approval_record
  63. WHERE application_no = 'TEST20250801001'
  64. ORDER BY node_order;
  65. -- 6. 清理测试数据
  66. -- DELETE FROM cw_approval_record WHERE application_no = 'TEST20250801001';
  67. -- DELETE FROM cw_project_application WHERE application_no = 'TEST20250801001';
  68. -- 如果上述测试成功(所有记录都有start_time值),说明我们的修复有效
  69. -- 如果测试失败,请检查是否还有其他问题