From 9b7a6e2103add78c311d675f16ab219920c6800d Mon Sep 17 00:00:00 2001
From: wuzhen <52326163@qq.com>
Date: Thu, 7 Aug 2025 18:40:25 +0800
Subject: [PATCH] wuzhen update
---
backend/add_create_dept.sql | 1 +
backend/debug_compatibility_type.sql | 30 +
backend/fix_compatibility_create_dept.sql | 36 +
backend/quota_diagnosis_results.txt | 37 +
backend/ruoyi-modules/ruoyi-jcbt/pom.xml | 115 ++
.../dromara/jcbt/RuoyiJcbtApplication.java | 19 +
.../java/org/dromara/jcbt/controller/.gitkeep | 0
.../JcbtScholarshipApplicationController.java | 339 ++++
.../JcbtScholarshipBatchController.java | 180 +++
.../JcbtScholarshipQuotaController.java | 248 +++
.../JcbtScholarshipTypeController.java | 298 ++++
.../domain/JcbtScholarshipApplication.java | 212 +++
.../domain/JcbtScholarshipAttachment.java | 131 ++
.../jcbt/domain/JcbtScholarshipBatch.java | 106 ++
.../jcbt/domain/JcbtScholarshipBatchType.java | 58 +
.../domain/JcbtScholarshipClassQuota.java | 111 ++
.../domain/JcbtScholarshipCompatibility.java | 67 +
.../jcbt/domain/JcbtScholarshipQuota.java | 125 ++
.../domain/JcbtScholarshipQuotaUsage.java | 107 ++
.../jcbt/domain/JcbtScholarshipType.java | 110 ++
.../java/org/dromara/jcbt/domain/bo/.gitkeep | 0
.../bo/JcbtScholarshipApplicationBo.java | 234 +++
.../domain/bo/JcbtScholarshipBatchBo.java | 121 ++
.../bo/JcbtScholarshipClassQuotaBo.java | 112 ++
.../bo/JcbtScholarshipCompatibilityBo.java | 63 +
.../domain/bo/JcbtScholarshipQuotaBo.java | 123 ++
.../jcbt/domain/bo/JcbtScholarshipTypeBo.java | 113 ++
.../org/dromara/jcbt/domain/entity/.gitkeep | 0
.../java/org/dromara/jcbt/domain/vo/.gitkeep | 0
.../vo/JcbtScholarshipApplicationVo.java | 230 +++
.../vo/JcbtScholarshipAttachmentVo.java | 123 ++
.../domain/vo/JcbtScholarshipBatchVo.java | 157 ++
.../vo/JcbtScholarshipClassQuotaVo.java | 117 ++
.../vo/JcbtScholarshipCompatibilityVo.java | 94 ++
.../domain/vo/JcbtScholarshipQuotaVo.java | 224 +++
.../jcbt/domain/vo/JcbtScholarshipTypeVo.java | 147 ++
.../main/java/org/dromara/jcbt/event/.gitkeep | 0
.../java/org/dromara/jcbt/listener/.gitkeep | 0
.../java/org/dromara/jcbt/mapper/.gitkeep | 0
.../JcbtScholarshipApplicationMapper.java | 80 +
.../mapper/JcbtScholarshipBatchMapper.java | 15 +
.../JcbtScholarshipBatchTypeMapper.java | 14 +
.../JcbtScholarshipClassQuotaMapper.java | 66 +
.../JcbtScholarshipCompatibilityMapper.java | 42 +
.../mapper/JcbtScholarshipQuotaMapper.java | 106 ++
.../mapper/JcbtScholarshipTypeMapper.java | 73 +
.../java/org/dromara/jcbt/service/.gitkeep | 0
.../IJcbtScholarshipApplicationService.java | 220 +++
.../service/IJcbtScholarshipBatchService.java | 89 ++
.../IJcbtScholarshipBatchTypeService.java | 41 +
.../IJcbtScholarshipClassQuotaService.java | 116 ++
.../IJcbtScholarshipCompatibilityService.java | 100 ++
.../service/IJcbtScholarshipQuotaService.java | 180 +++
.../service/IJcbtScholarshipTypeService.java | 94 ++
.../org/dromara/jcbt/service/impl/.gitkeep | 0
...JcbtScholarshipApplicationServiceImpl.java | 782 ++++++++++
.../impl/JcbtScholarshipBatchServiceImpl.java | 295 ++++
.../JcbtScholarshipBatchTypeServiceImpl.java | 89 ++
.../JcbtScholarshipClassQuotaServiceImpl.java | 159 ++
...btScholarshipCompatibilityServiceImpl.java | 220 +++
.../impl/JcbtScholarshipQuotaServiceImpl.java | 496 ++++++
.../impl/JcbtScholarshipTypeServiceImpl.java | 234 +++
.../src/main/resources/application.yml | 36 +
.../src/main/resources/mapper/.gitkeep | 0
.../mapper/JcbtScholarshipQuotaMapper.xml | 306 ++++
.../jcbt/JcbtScholarshipApplicationMapper.xml | 171 ++
.../jcbt/JcbtScholarshipClassQuotaMapper.xml | 91 ++
.../JcbtScholarshipCompatibilityMapper.xml | 50 +
.../mapper/jcbt/JcbtScholarshipTypeMapper.xml | 89 ++
...add_missing_fields_to_scholarship_type.sql | 28 +
backend/sql/debug_quota_delete_issue.sql | 134 ++
backend/sql/diagnose_quota_display_issue.sql | 249 +++
.../diagnose_quota_display_issue_correct.sql | 245 +++
...diagnose_quota_display_issue_corrected.sql | 353 +++++
.../diagnose_quota_display_issue_final.sql | 306 ++++
backend/sql/fix_compatibility_type_field.sql | 56 +
backend/sql/fix_quota_unique_constraint.sql | 101 ++
backend/sql/insert_test_data_simple.sql | 71 +
backend/sql/jcbt_scholarship_management.sql | 42 +
.../sql/jcbt_scholarship_quota_management.sql | 98 ++
...cbt_scholarship_quota_menu_permissions.sql | 134 ++
backend/sql/test_missing_fields_fix.sql | 105 ++
backend/sql/test_scholarship_basic_data.sql | 131 ++
.../batch-type-association-2025-01-27.md | 133 ++
.../code-adjust-record-2025-01-01-wuzhen.md | 165 ++
.../code-adjust-record-2025-01-07-wuzhen.md | 216 +++
...just-record-2025-01-27-batch-management.md | 240 +++
...cord-2025-01-27-fix-batch-apply-display.md | 140 ++
...025-01-27-fix-quota-batch-type-relation.md | 244 +++
...just-record-2025-01-27-fix-quota-fields.md | 220 +++
...adjust-record-2025-01-27-frontend-batch.md | 247 +++
.../code-adjust-record-2025-01-27-frontend.md | 253 +++
...rd-2025-01-27-hide-auto-allocate-button.md | 113 ++
...e-adjust-record-2025-01-27-quota-module.md | 300 ++++
...rd-2025-01-27-scholarship-compatibility.md | 193 +++
...rd-2025-01-27-scholarship-quota-display.md | 245 +++
...adjust-record-2025-01-27-ui-enhancement.md | 219 +++
...rd-2025-01-28-fix-scholarship-quota-log.md | 1 +
...st-record-2025-08-04-missing-fields-fix.md | 286 ++++
...4-scholarship-compatibility-display-fix.md | 514 +++++++
...djust-record-2025-08-05-API对接准备就绪.md | 186 +++
...d-2025-08-05-scholarship-add-button-fix.md | 214 +++
...-08-05-scholarship-application-redesign.md | 205 +++
...-08-05-scholarship-batch-apply-redesign.md | 347 +++++
...d-2025-08-05-scholarship-quota-frontend.md | 266 ++++
...st-record-2025-08-05-奖学金申请重构完成.md | 229 +++
...ecord-2025-08-05-奖学金申请重构状态总结.md | 174 +++
...adjust-record-2025-08-06-fix-class-info.md | 187 +++
...record-2025-08-06-fix-scholarship-types.md | 154 ++
docs/开发文档/API/奖学金名额分配管理API.md | 570 +++++++
docs/开发文档/API/奖学金申请管理API.md | 738 +++++++++
.../database/奖学金v2.0数据字典配置.sql | 75 +
...学金申请管理v2.0数据库升级脚本-修复版.sql | 423 +++++
.../奖学金申请管理v2.0数据库升级脚本.sql | 273 ++++
docs/需求文档/奖惩补贴需求/README.md | 369 +++++
.../奖学金申请管理v2.0重构总结.md | 390 +++++
.../奖学金申请管理模块需求设计v2.0.md | 687 +++++++++
.../奖学金管理基础数据-兼得关系增强-增量.sql | 138 ++
...奖学金管理基础数据-兼得关系增强-安全版.sql | 107 ++
.../奖学金管理基础数据-兼得关系增强.sql | 134 ++
.../奖惩补贴需求/奖学金管理基础数据.sql | 212 +++
.../奖惩补贴需求/奖学金管理建表脚本.sql | 366 +++++
.../奖惩补贴需求/奖学金管理数据模型设计.md | 581 +++++++
.../奖学金管理模块产品需求设计.md | 573 +++++++
docs/需求文档/奖惩补贴需求/用户原始需求.md | 23 +
permission-debug.html | 318 ++++
web/src/api/jcbt/index.ts | 171 ++
web/src/api/jcbt/scholarshipApplication.ts | 192 +++
web/src/api/jcbt/scholarshipBatch.ts | 226 +++
web/src/api/jcbt/scholarshipQuota.ts | 217 +++
web/src/api/jcbt/scholarshipType.ts | 331 ++++
web/src/api/jcbt/types.ts | 503 ++++++
.../jcbt/scholarship/application/detail.vue | 488 ++++++
.../jcbt/scholarship/application/form.vue | 718 +++++++++
.../jcbt/scholarship/application/index.vue | 961 ++++++++++++
.../views/jcbt/scholarship/batch/index.vue | 983 ++++++++++++
.../views/jcbt/scholarship/quota/index.vue | 1370 +++++++++++++++++
web/src/views/jcbt/scholarship/type/index.vue | 1258 +++++++++++++++
138 files changed, 29581 insertions(+)
create mode 100644 backend/add_create_dept.sql
create mode 100644 backend/debug_compatibility_type.sql
create mode 100644 backend/fix_compatibility_create_dept.sql
create mode 100644 backend/quota_diagnosis_results.txt
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/pom.xml
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/RuoyiJcbtApplication.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipApplicationController.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipBatchController.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipQuotaController.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipTypeController.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipApplication.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipAttachment.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipBatch.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipBatchType.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipClassQuota.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipCompatibility.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipQuota.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipQuotaUsage.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipType.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipApplicationBo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipBatchBo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipClassQuotaBo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipCompatibilityBo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipQuotaBo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipTypeBo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/entity/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipApplicationVo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipAttachmentVo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipBatchVo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipClassQuotaVo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipCompatibilityVo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipQuotaVo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipTypeVo.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/event/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/listener/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipApplicationMapper.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipBatchMapper.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipBatchTypeMapper.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipClassQuotaMapper.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipCompatibilityMapper.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipQuotaMapper.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipTypeMapper.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipApplicationService.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipBatchService.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipBatchTypeService.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipClassQuotaService.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipCompatibilityService.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipQuotaService.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipTypeService.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipApplicationServiceImpl.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipBatchServiceImpl.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipBatchTypeServiceImpl.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipClassQuotaServiceImpl.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipCompatibilityServiceImpl.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipQuotaServiceImpl.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipTypeServiceImpl.java
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/application.yml
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/.gitkeep
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/JcbtScholarshipQuotaMapper.xml
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipApplicationMapper.xml
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipClassQuotaMapper.xml
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipCompatibilityMapper.xml
create mode 100644 backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipTypeMapper.xml
create mode 100644 backend/sql/add_missing_fields_to_scholarship_type.sql
create mode 100644 backend/sql/debug_quota_delete_issue.sql
create mode 100644 backend/sql/diagnose_quota_display_issue.sql
create mode 100644 backend/sql/diagnose_quota_display_issue_correct.sql
create mode 100644 backend/sql/diagnose_quota_display_issue_corrected.sql
create mode 100644 backend/sql/diagnose_quota_display_issue_final.sql
create mode 100644 backend/sql/fix_compatibility_type_field.sql
create mode 100644 backend/sql/fix_quota_unique_constraint.sql
create mode 100644 backend/sql/insert_test_data_simple.sql
create mode 100644 backend/sql/jcbt_scholarship_management.sql
create mode 100644 backend/sql/jcbt_scholarship_quota_management.sql
create mode 100644 backend/sql/jcbt_scholarship_quota_menu_permissions.sql
create mode 100644 backend/sql/test_missing_fields_fix.sql
create mode 100644 backend/sql/test_scholarship_basic_data.sql
create mode 100644 docs/变更管理/batch-type-association-2025-01-27.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-01-wuzhen.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-07-wuzhen.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-batch-management.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-fix-batch-apply-display.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-fix-quota-batch-type-relation.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-fix-quota-fields.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-frontend-batch.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-frontend.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-hide-auto-allocate-button.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-quota-module.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-scholarship-compatibility.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-scholarship-quota-display.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-27-ui-enhancement.md
create mode 100644 docs/变更管理/code-adjust-record-2025-01-28-fix-scholarship-quota-log.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-04-missing-fields-fix.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-04-scholarship-compatibility-display-fix.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-05-API对接准备就绪.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-05-scholarship-add-button-fix.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-05-scholarship-application-redesign.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-05-scholarship-batch-apply-redesign.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-05-scholarship-quota-frontend.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-05-奖学金申请重构完成.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-05-奖学金申请重构状态总结.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-06-fix-class-info.md
create mode 100644 docs/变更管理/code-adjust-record-2025-08-06-fix-scholarship-types.md
create mode 100644 docs/开发文档/API/奖学金名额分配管理API.md
create mode 100644 docs/开发文档/API/奖学金申请管理API.md
create mode 100644 docs/设计文档/database/奖学金v2.0数据字典配置.sql
create mode 100644 docs/设计文档/database/奖学金申请管理v2.0数据库升级脚本-修复版.sql
create mode 100644 docs/设计文档/database/奖学金申请管理v2.0数据库升级脚本.sql
create mode 100644 docs/需求文档/奖惩补贴需求/README.md
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金申请管理v2.0重构总结.md
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金申请管理模块需求设计v2.0.md
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金管理基础数据-兼得关系增强-增量.sql
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金管理基础数据-兼得关系增强-安全版.sql
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金管理基础数据-兼得关系增强.sql
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金管理基础数据.sql
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金管理建表脚本.sql
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金管理数据模型设计.md
create mode 100644 docs/需求文档/奖惩补贴需求/奖学金管理模块产品需求设计.md
create mode 100644 docs/需求文档/奖惩补贴需求/用户原始需求.md
create mode 100644 permission-debug.html
create mode 100644 web/src/api/jcbt/index.ts
create mode 100644 web/src/api/jcbt/scholarshipApplication.ts
create mode 100644 web/src/api/jcbt/scholarshipBatch.ts
create mode 100644 web/src/api/jcbt/scholarshipQuota.ts
create mode 100644 web/src/api/jcbt/scholarshipType.ts
create mode 100644 web/src/api/jcbt/types.ts
create mode 100644 web/src/views/jcbt/scholarship/application/detail.vue
create mode 100644 web/src/views/jcbt/scholarship/application/form.vue
create mode 100644 web/src/views/jcbt/scholarship/application/index.vue
create mode 100644 web/src/views/jcbt/scholarship/batch/index.vue
create mode 100644 web/src/views/jcbt/scholarship/quota/index.vue
create mode 100644 web/src/views/jcbt/scholarship/type/index.vue
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/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/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-modules/ruoyi-jcbt/pom.xml b/backend/ruoyi-modules/ruoyi-jcbt/pom.xml
new file mode 100644
index 00000000..d294f710
--- /dev/null
+++ b/backend/ruoyi-modules/ruoyi-jcbt/pom.xml
@@ -0,0 +1,115 @@
+
+
+
+ ruoyi-modules
+ org.dromara
+ ${revision}
+
+ 4.0.0
+
+ ruoyi-jcbt
+
+ 奖惩补贴管理模块
+
+
+
+
+
+
+ org.dromara
+ ruoyi-common-core
+
+
+
+ org.dromara
+ ruoyi-common-doc
+
+
+
+ org.dromara
+ ruoyi-common-mybatis
+
+
+
+ org.dromara
+ ruoyi-common-log
+
+
+
+ org.dromara
+ ruoyi-common-security
+
+
+
+ org.dromara
+ ruoyi-common-web
+
+
+
+ org.dromara
+ ruoyi-common-excel
+
+
+
+ org.dromara
+ ruoyi-common-idempotent
+
+
+
+ org.dromara
+ ruoyi-common-tenant
+
+
+
+ org.dromara
+ ruoyi-common-social
+
+
+
+ org.dromara
+ ruoyi-common-ratelimiter
+
+
+
+ org.dromara
+ ruoyi-common-mail
+
+
+
+ org.dromara
+ ruoyi-system
+
+
+
+ org.dromara
+ ruoyi-job
+
+
+
+
+ org.dromara
+ ruoyi-generator
+
+
+
+
+ org.dromara
+ ruoyi-demo
+
+
+
+
+ org.dromara
+ ruoyi-workflow
+
+
+
+
+ org.dromara
+ ruoyi-xg
+
+
+
+
+
diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/RuoyiJcbtApplication.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/RuoyiJcbtApplication.java
new file mode 100644
index 00000000..ebd48cbe
--- /dev/null
+++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/RuoyiJcbtApplication.java
@@ -0,0 +1,19 @@
+package org.dromara.jcbt;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 奖惩补贴管理模块启动程序
+ *
+ * @author ruoyi
+ */
+@SpringBootApplication
+public class RuoyiJcbtApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(RuoyiJcbtApplication.class, args);
+ System.out.println("(♥◠‿◠)ノ゙ 奖惩补贴管理模块启动成功 ლ(´ڡ`ლ)゙");
+ }
+
+}
diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/.gitkeep b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipApplicationController.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipApplicationController.java
new file mode 100644
index 00000000..a7e0e6b9
--- /dev/null
+++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipApplicationController.java
@@ -0,0 +1,339 @@
+package org.dromara.jcbt.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.jcbt.domain.bo.JcbtScholarshipApplicationBo;
+import org.dromara.jcbt.domain.vo.JcbtScholarshipApplicationVo;
+import org.dromara.jcbt.service.IJcbtScholarshipApplicationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * 奖学金申请记录管理
+ *
+ * @author ruoyi
+ * @date 2025-01-01
+ */
+@Validated
+@Tag(name = "奖学金申请记录管理", description = "奖学金申请记录管理Controller")
+@RestController
+@RequestMapping("/jcbt/scholarshipApplication")
+public class JcbtScholarshipApplicationController extends BaseController {
+
+ @Autowired
+ private IJcbtScholarshipApplicationService applicationService;
+
+ // ========== 基础管理接口(6个) ==========
+
+ /**
+ * 查询奖学金申请记录列表
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:list")
+ @GetMapping("/list")
+ @Operation(summary = "查询奖学金申请记录列表")
+ public TableDataInfo list(JcbtScholarshipApplicationBo bo, PageQuery pageQuery) {
+ return applicationService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 获取奖学金申请记录详细信息
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:query")
+ @GetMapping("/{id}")
+ @Operation(summary = "获取奖学金申请记录详细信息")
+ public R getInfo(@Parameter(description = "主键") @PathVariable Long id) {
+ return R.ok(applicationService.queryById(id));
+ }
+
+ /**
+ * 新增奖学金申请记录
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:add")
+ @Log(title = "奖学金申请记录", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping
+ @Operation(summary = "新增奖学金申请记录")
+ public R add(@Parameter(description = "奖学金申请记录") @Validated(AddGroup.class) @RequestBody JcbtScholarshipApplicationBo bo) {
+ return toAjax(applicationService.insertByBo(bo));
+ }
+
+ /**
+ * 修改奖学金申请记录
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:edit")
+ @Log(title = "奖学金申请记录", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping
+ @Operation(summary = "修改奖学金申请记录")
+ public R edit(@Parameter(description = "奖学金申请记录") @Validated(EditGroup.class) @RequestBody JcbtScholarshipApplicationBo bo) {
+ return toAjax(applicationService.updateByBo(bo));
+ }
+
+ /**
+ * 删除奖学金申请记录
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:remove")
+ @Log(title = "奖学金申请记录", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ @Operation(summary = "删除奖学金申请记录")
+ public R remove(@Parameter(description = "主键串") @PathVariable Long[] ids) {
+ return toAjax(applicationService.deleteWithValidByIds(List.of(ids), true));
+ }
+
+ /**
+ * 获取可申请的奖学金类型列表
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:available")
+ @GetMapping("/available")
+ @Operation(summary = "获取可申请的奖学金类型列表")
+ public R>> getAvailableScholarshipTypes(@Parameter(description = "班级ID") @RequestParam Long classId,
+ @Parameter(description = "批次ID") @RequestParam Long batchId) {
+ return R.ok(applicationService.queryAvailableScholarshipTypes(classId, batchId));
+ }
+
+ // ========== 业务功能接口(4个) ==========
+
+ /**
+ * 查询我的申请记录(班主任)
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:my")
+ @GetMapping("/my")
+ @Operation(summary = "查询我的申请记录")
+ public R> getMyApplications(@Parameter(description = "申请人ID") @RequestParam Long applicantId,
+ @Parameter(description = "批次ID") @RequestParam(required = false) Long batchId) {
+ return R.ok(applicationService.queryApplicationsByApplicant(applicantId, batchId));
+ }
+
+ /**
+ * 查询待审核申请
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:pending")
+ @GetMapping("/pending")
+ @Operation(summary = "查询待审核申请")
+ public R> getPendingApplications(@Parameter(description = "审核人ID") @RequestParam(required = false) Long reviewerId,
+ @Parameter(description = "申请状态") @RequestParam(required = false) String status) {
+ return R.ok(applicationService.queryPendingApplications(reviewerId, status));
+ }
+
+ /**
+ * 检查学生申请资格
+ */
+ @SaCheckPermission("jcbt:scholarshipApplication:check")
+ @GetMapping("/check")
+ @Operation(summary = "检查学生申请资格")
+ public R