diff --git a/backend/add_create_dept.sql b/backend/add_create_dept.sql
new file mode 100644
index 00000000..71ddce64
--- /dev/null
+++ b/backend/add_create_dept.sql
@@ -0,0 +1 @@
+ALTER TABLE jcbt_scholarship_type ADD COLUMN create_dept BIGINT(20) COMMENT '创建部门' AFTER is_system;
diff --git a/backend/add_create_dept_field.sql b/backend/add_create_dept_field.sql
new file mode 100644
index 00000000..18067ae6
--- /dev/null
+++ b/backend/add_create_dept_field.sql
@@ -0,0 +1,6 @@
+-- 为 jcbt_scholarship_application 表添加 create_dept 字段
+-- 解决 MyBatis-Plus 插入数据时的字段缺失问题
+
+ALTER TABLE jcbt_scholarship_application
+ADD COLUMN create_dept bigint(20) DEFAULT NULL COMMENT '创建部门'
+AFTER submit_time;
diff --git a/backend/debug_compatibility_type.sql b/backend/debug_compatibility_type.sql
new file mode 100644
index 00000000..86b790d5
--- /dev/null
+++ b/backend/debug_compatibility_type.sql
@@ -0,0 +1,30 @@
+-- 调试compatibility_type字段问题
+-- 检查表结构
+DESCRIBE jcbt_scholarship_type;
+
+-- 检查字段是否存在
+SHOW COLUMNS FROM jcbt_scholarship_type LIKE 'compatibility_type';
+
+-- 查看具体数据
+SELECT id, type_name, compatibility_type,
+ CASE
+ WHEN compatibility_type IS NULL THEN 'NULL值'
+ WHEN compatibility_type = '' THEN '空字符串'
+ ELSE CONCAT('有值:', compatibility_type)
+ END as value_status
+FROM jcbt_scholarship_type
+WHERE deleted = 0
+LIMIT 10;
+
+-- 统计各种值的分布
+SELECT
+ compatibility_type,
+ COUNT(*) as count,
+ CASE
+ WHEN compatibility_type IS NULL THEN 'NULL值'
+ WHEN compatibility_type = '' THEN '空字符串'
+ ELSE '有效值'
+ END as value_type
+FROM jcbt_scholarship_type
+WHERE deleted = 0
+GROUP BY compatibility_type;
diff --git a/backend/fix_compatibility_create_dept.sql b/backend/fix_compatibility_create_dept.sql
new file mode 100644
index 00000000..b025492b
--- /dev/null
+++ b/backend/fix_compatibility_create_dept.sql
@@ -0,0 +1,36 @@
+-- =====================================================
+-- 奖学金兼得关系表 - create_dept字段修复脚本
+-- 版本: v1.0
+-- 创建时间: 2025-01-27
+-- 问题描述: 实体类继承BaseEntity包含create_dept字段,但数据库表缺少该字段
+-- 解决方案: 为jcbt_scholarship_compatibility表添加create_dept字段
+-- =====================================================
+
+USE `ruoyi-vue-pro`;
+
+-- 为奖学金兼得关系表添加create_dept字段
+ALTER TABLE `jcbt_scholarship_compatibility`
+ADD COLUMN IF NOT EXISTS `create_dept` BIGINT(20) COMMENT '创建部门'
+AFTER `description`;
+
+-- 验证字段添加结果
+SELECT
+ COLUMN_NAME,
+ DATA_TYPE,
+ IS_NULLABLE,
+ COLUMN_DEFAULT,
+ COLUMN_COMMENT
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE TABLE_SCHEMA = 'ruoyi-vue-pro'
+ AND TABLE_NAME = 'jcbt_scholarship_compatibility'
+ AND COLUMN_NAME = 'create_dept';
+
+-- 显示表结构确认修复结果
+DESCRIBE `jcbt_scholarship_compatibility`;
+
+-- =====================================================
+-- 修复说明:
+-- 1. 该字段是BaseEntity的标准字段,用于记录创建部门
+-- 2. 字段类型为BIGINT(20),允许NULL,与其他表保持一致
+-- 3. 字段位置放在description字段之后,符合标准字段顺序
+-- =====================================================
diff --git a/backend/fix_jcbt_scholarship_application_create_dept.sql b/backend/fix_jcbt_scholarship_application_create_dept.sql
new file mode 100644
index 00000000..b4ff35ab
--- /dev/null
+++ b/backend/fix_jcbt_scholarship_application_create_dept.sql
@@ -0,0 +1,33 @@
+-- 修复奖学金申请表缺失的create_dept字段
+-- 问题: MyBatis-Plus插入数据时报错 Unknown column 'create_dept' in 'field list'
+-- 原因: 数据库表缺少BaseEntity中的create_dept字段
+-- 解决方案: 为jcbt_scholarship_application表添加create_dept字段
+
+-- 检查字段是否存在,不存在则添加
+SET @sql = '';
+SELECT COUNT(*) INTO @col_exists
+FROM information_schema.columns
+WHERE table_schema = 'hzdyjs_xg'
+ AND table_name = 'jcbt_scholarship_application'
+ AND column_name = 'create_dept';
+
+-- 如果字段不存在,则添加
+SET @sql = IF(@col_exists = 0,
+ 'ALTER TABLE jcbt_scholarship_application ADD COLUMN create_dept bigint(20) DEFAULT NULL COMMENT ''创建部门'' AFTER submit_time;',
+ 'SELECT ''字段 create_dept 已存在,跳过添加'' AS message;');
+
+PREPARE stmt FROM @sql;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+-- 验证字段是否添加成功
+SELECT
+ COLUMN_NAME as '字段名',
+ DATA_TYPE as '数据类型',
+ IS_NULLABLE as '允许空值',
+ COLUMN_DEFAULT as '默认值',
+ COLUMN_COMMENT as '注释'
+FROM information_schema.columns
+WHERE table_schema = 'hzdyjs_xg'
+ AND table_name = 'jcbt_scholarship_application'
+ AND column_name = 'create_dept';
diff --git a/backend/quota_diagnosis_results.txt b/backend/quota_diagnosis_results.txt
new file mode 100644
index 00000000..608d9f21
--- /dev/null
+++ b/backend/quota_diagnosis_results.txt
@@ -0,0 +1,37 @@
+mysql: [Warning] Using a password on the command line interface can be insecure.
+info
+=== 1. 班主任和班级信息检查 ===
+info
+=== 2. 奖学金批次信息检查 ===
+batch_id batch_name batch_status start_time end_time create_time
+1952730449122004993 2025-2026??????????????? ACTIVE 2025-08-05 00:00:00 2025-08-29 00:00:00 2025-08-05 21:56:34
+1 2024-2025??????????? ACTIVE 2024-09-01 00:00:00 2024-12-31 23:59:59 2025-08-05 09:04:39
+info
+=== 3. 奖学金类型信息检查 ===
+type_id type_name level_type type_status batch_id batch_name
+1 ??????? FIRST 1 1953330495479644161 2025-2026?????????????
+1 ??????? FIRST 1 1952730449122004993 2025-2026???????????????
+5 ????????? FIRST 1 1952730449122004993 2025-2026???????????????
+1953004971846852609 ??????? FIRST 1 1952730449122004993 2025-2026???????????????
+6 ????????? FIRST 1 NULL NULL
+2 ??????? SECOND 1 1953330495479644161 2025-2026?????????????
+2 ??????? SECOND 1 1952730449122004993 2025-2026???????????????
+1953005237862195202 ??????? SECOND 1 1952730449122004993 2025-2026???????????????
+7 ????????? SECOND 1 NULL NULL
+1953004602014097409 ??????? SPECIAL 1 1952730449122004993 2025-2026???????????????
+4 ????????? SPECIAL 1 1952730449122004993 2025-2026???????????????
+8 ??????? SPECIAL 1 NULL NULL
+1952634577994387457 ????? SPECIAL 1 1952730449122004993 2025-2026???????????????
+1953004324552499202 ?????? SPECIAL 1 1952730449122004993 2025-2026???????????????
+3 ??????? THIRD 1 1952730449122004993 2025-2026???????????????
+1953005415696490497 ??????? THIRD 1 1952730449122004993 2025-2026???????????????
+info
+=== 4. 班级名额分配情况检查 ===
+quota_id batch_id batch_name scholarship_type_id type_name class_id class_name total_quota used_quota available_quota allocation_method status create_time
+2001 1 2024-2025??????????? 1 ??????? 1001 NULL 2 0 2 MANUAL ACTIVE 2025-08-06 11:00:49
+2003 1 2024-2025??????????? 2 ??????? 1001 NULL 3 0 2 MANUAL ACTIVE 2025-08-06 11:00:49
+2002 1 2024-2025??????????? 1 ??????? 1002 NULL 1 0 1 MANUAL ACTIVE 2025-08-06 11:00:49
+2004 1 2024-2025??????????? 2 ??????? 1002 NULL 2 0 2 MANUAL ACTIVE 2025-08-06 11:00:49
+info
+=== 5. 已使用名额情况检查 ===
+ERROR 1054 (42S22) at line 87: Unknown column 'sa.applicant_class_id' in 'field list'
diff --git a/backend/ruoyi-admin/pom.xml b/backend/ruoyi-admin/pom.xml
index f812e856..4e1232c7 100644
--- a/backend/ruoyi-admin/pom.xml
+++ b/backend/ruoyi-admin/pom.xml
@@ -135,6 +135,13 @@
${revision}
+
+
+ org.dromara
+ ruoyi-jcbt
+ ${revision}
+
+
diff --git a/backend/ruoyi-modules/ruoyi-cw/src/main/java/org/dromara/cw/service/impl/CwApprovalRecordServiceImpl.java b/backend/ruoyi-modules/ruoyi-cw/src/main/java/org/dromara/cw/service/impl/CwApprovalRecordServiceImpl.java
index de9c9704..f522adfd 100644
--- a/backend/ruoyi-modules/ruoyi-cw/src/main/java/org/dromara/cw/service/impl/CwApprovalRecordServiceImpl.java
+++ b/backend/ruoyi-modules/ruoyi-cw/src/main/java/org/dromara/cw/service/impl/CwApprovalRecordServiceImpl.java
@@ -36,6 +36,8 @@ import org.dromara.system.domain.bo.SysDeptBo;
import java.util.*;
import java.util.stream.Collectors;
import org.dromara.common.core.utils.SpringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
/**
* 审批记录Service业务层处理
@@ -54,6 +56,9 @@ public class CwApprovalRecordServiceImpl implements ICwApprovalRecordService {
private final ISysUserService sysUserService;
private final ISysDeptService sysDeptService;
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
/**
* 根据主键查询审批记录
*/
@@ -1119,51 +1124,91 @@ public class CwApprovalRecordServiceImpl implements ICwApprovalRecordService {
return checkApprovalPermission(applicationId, "dept_approve");
}
- /**
+ /**
* 获取可选审批人列表(院领导)
+ * 修改为基于权限角色查找:查找具有cw:approval:leader权限的用户
*/
@Override
public List