变更日期: 2025-01-07
变更人员: wuzhen
变更类型: 新功能开发
变更范围: 奖学金名额统计功能
为奖学金名额管理系统增加实时统计功能,包括:
文件: backend/hzdyjs-api/hzdyjs-jcbt/src/main/java/com/hzdyjs/jcbt/controller/ScholarshipQuotaController.java
新增接口:
@GetMapping("/statistics/{batchId}")
@SaCheckPermission("jcbt:scholarshipQuota:statistics")
public R<Map<String, Object>> getStatistics(@PathVariable Long batchId)
功能: 获取指定批次的名额统计数据
文件: backend/hzdyjs-api/hzdyjs-jcbt/src/main/java/com/hzdyjs/jcbt/service/impl/ScholarshipQuotaServiceImpl.java
新增方法:
@Override
public Map<String, Object> getStatistics(Long batchId)
统计逻辑:
权限标识: jcbt:scholarshipQuota:statistics
权限名称: 奖学金名额统计查看
文件: web/src/views/jcbt/scholarship/quota/index.vue
新增功能:
集成点:
更新时机:
getList() 方法中同步获取统计数据@Override
public Map<String, Object> getStatistics(Long batchId) {
// 查询指定批次的所有名额配置
LambdaQueryWrapper<ScholarshipQuota> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ScholarshipQuota::getBatchId, batchId)
.eq(ScholarshipQuota::getDeleted, 0);
List<ScholarshipQuota> quotas = this.list(wrapper);
// 计算统计数据
int totalQuota = quotas.stream().mapToInt(ScholarshipQuota::getTotalQuota).sum();
int usedQuota = quotas.stream().mapToInt(ScholarshipQuota::getUsedQuota).sum();
int availableQuota = totalQuota - usedQuota;
double usageRate = totalQuota > 0 ? (double) usedQuota / totalQuota : 0.0;
// 构建返回结果
Map<String, Object> result = new HashMap<>();
result.put("totalQuota", totalQuota);
result.put("usedQuota", usedQuota);
result.put("availableQuota", availableQuota);
result.put("usageRate", usageRate);
return result;
}
<el-row :gutter="20" class="mb-4">
<el-col :span="6">
<el-card class="statistics-card">
<div class="statistics-content">
<div class="statistics-number">{{ totalQuota }}</div>
<div class="statistics-label">总名额</div>
</div>
</el-card>
</el-col>
<!-- 其他统计卡片... -->
</el-row>
文件: scholarship_quota_statistics_test.py
测试覆盖:
测试方法:
python scholarship_quota_statistics_test.py
文件: docs/开发文档/API/奖学金名额管理API.md
新增内容:
文件: docs/变更管理/code-adjust-record-2025-01-07-wuzhen.md
记录内容:
记录时间: 2025-01-07 19:30:00
代码状态: 开发完成,功能验证通过
部署状态: 待部署测试环境