| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- -- ========================================
- -- 奖学金名额分配删除问题诊断脚本
- -- 创建时间: 2025-01-28
- -- 说明: 用于排查无法删除的名额分配记录
- -- ========================================
- USE hzdyjs_xg;
- -- 1. 查看所有名额分配记录的状态
- SELECT
- id,
- batch_id,
- scholarship_type_id,
- allocation_level,
- target_dept_id,
- total_quota,
- used_quota,
- reserved_quota,
- available_quota,
- is_adjustable,
- is_locked,
- status,
- deleted,
- create_time,
- update_time
- FROM jcbt_scholarship_quota
- WHERE deleted = 0
- ORDER BY create_time DESC;
- -- 2. 查找可能有问题的记录(已使用名额大于0或已锁定)
- SELECT
- '已使用名额大于0' as issue_type,
- id,
- batch_id,
- scholarship_type_id,
- total_quota,
- used_quota,
- reserved_quota,
- available_quota,
- is_locked,
- status
- FROM jcbt_scholarship_quota
- WHERE deleted = 0 AND used_quota > 0
- UNION ALL
- SELECT
- '已被锁定' as issue_type,
- id,
- batch_id,
- scholarship_type_id,
- total_quota,
- used_quota,
- reserved_quota,
- available_quota,
- is_locked,
- status
- FROM jcbt_scholarship_quota
- WHERE deleted = 0 AND is_locked = 1
- UNION ALL
- SELECT
- '状态异常' as issue_type,
- id,
- batch_id,
- scholarship_type_id,
- total_quota,
- used_quota,
- reserved_quota,
- available_quota,
- is_locked,
- status
- FROM jcbt_scholarship_quota
- WHERE deleted = 0 AND status != 'ACTIVE';
- -- 3. 检查是否存在外键约束或关联数据
- -- 检查是否有申请记录引用了这些名额
- SELECT
- q.id as quota_id,
- q.batch_id,
- q.scholarship_type_id,
- q.used_quota,
- q.is_locked,
- COUNT(DISTINCT a.id) as application_count
- FROM jcbt_scholarship_quota q
- LEFT JOIN jcbt_scholarship_application a ON a.batch_id = q.batch_id
- AND a.scholarship_type_id = q.scholarship_type_id
- WHERE q.deleted = 0
- GROUP BY q.id, q.batch_id, q.scholarship_type_id, q.used_quota, q.is_locked
- HAVING application_count > 0 OR q.used_quota > 0 OR q.is_locked = 1;
- -- 4. 检查是否有下级名额分配
- SELECT
- parent.id as parent_quota_id,
- parent.allocation_level as parent_level,
- parent.used_quota as parent_used_quota,
- parent.is_locked as parent_is_locked,
- COUNT(child.id) as child_count
- FROM jcbt_scholarship_quota parent
- LEFT JOIN jcbt_scholarship_quota child ON child.parent_quota_id = parent.id AND child.deleted = 0
- WHERE parent.deleted = 0
- GROUP BY parent.id, parent.allocation_level, parent.used_quota, parent.is_locked
- HAVING child_count > 0;
- -- 5. 详细查看有问题的记录(根据实际情况调整ID)
- -- 请替换下面的ID为实际无法删除的记录ID
- -- SELECT * FROM jcbt_scholarship_quota WHERE id = 替换为实际ID;
- -- 6. 查看相关批次信息
- SELECT
- b.id as batch_id,
- b.batch_name,
- b.batch_code,
- b.status as batch_status,
- b.start_time,
- b.end_time,
- COUNT(q.id) as quota_count
- FROM jcbt_scholarship_batch b
- LEFT JOIN jcbt_scholarship_quota q ON q.batch_id = b.id AND q.deleted = 0
- WHERE b.deleted = 0
- GROUP BY b.id, b.batch_name, b.batch_code, b.status, b.start_time, b.end_time;
- -- 7. 查看奖学金类型信息
- SELECT
- st.id as type_id,
- st.type_name,
- st.type_code,
- st.status as type_status,
- COUNT(q.id) as quota_count
- FROM jcbt_scholarship_type st
- LEFT JOIN jcbt_scholarship_quota q ON q.scholarship_type_id = st.id AND q.deleted = 0
- WHERE st.deleted = 0
- GROUP BY st.id, st.type_name, st.type_code, st.status;
|