From 098776b8c05f44d6b0598cc0a84632c4e7dd6e0e Mon Sep 17 00:00:00 2001 From: wuzhen <52326163@qq.com> Date: Wed, 13 Aug 2025 09:30:59 +0800 Subject: [PATCH] wuzhen update --- ...udyApplicationCollegeReviewController.java | 2 +- .../JcbtWorkStudyApplicationServiceImpl.java | 45 +++++++++++++++++-- .../components/PendingApplications.vue | 26 ++++++++--- 3 files changed, 64 insertions(+), 9 deletions(-) diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationCollegeReviewController.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationCollegeReviewController.java index fd65f658..34dfd018 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationCollegeReviewController.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationCollegeReviewController.java @@ -65,7 +65,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl // 设置学院过滤条件 - 只查看本学院学生的申请 bo.setCollegeId(currentUserCollegeId); - // 只查询已提交状态的申请(待学院审核) + // 只查询已提交状态的申请(待学院审核)- 这样审核通过后就不会在待审核列表中显示 bo.setStatus("SUBMITTED"); return workStudyApplicationService.queryPendingCollegeReview(bo, pageQuery); diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java index b19c6069..8f9ac03d 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java @@ -309,10 +309,15 @@ public class JcbtWorkStudyApplicationServiceImpl implements IJcbtWorkStudyApplic @Override @Transactional(rollbackFor = Exception.class) public Boolean collegeReview(WorkStudyApplicationReviewBo reviewBo) { + log.info("🔍 [学院审核] 开始审核,申请ID: {}, 审核结果: {}", reviewBo.getApplicationId(), reviewBo.getReviewResult()); + JcbtWorkStudyApplication application = baseMapper.selectById(reviewBo.getApplicationId()); if (application == null) { throw new ServiceException("申请不存在"); } + + log.info("🔍 [学院审核] 审核前状态: {}", application.getStatus()); + if (!WorkStudyApplicationStatusEnum.SUBMITTED.getCode().equals(application.getStatus())) { throw new ServiceException("只能审核已提交的申请"); } @@ -320,20 +325,44 @@ public class JcbtWorkStudyApplicationServiceImpl implements IJcbtWorkStudyApplic Long currentUserId = LoginHelper.getUserId(); String currentUserName = LoginHelper.getUsername(); + // 设置审核信息 application.setCollegeReviewStatus(reviewBo.getReviewResult()); application.setCollegeReviewTime(new Date()); application.setCollegeReviewerId(currentUserId); application.setCollegeReviewerName(currentUserName); application.setCollegeReviewComment(reviewBo.getReviewComment()); - // 更新总状态 + // 设置更新信息 + application.setUpdateBy(currentUserId); + application.setUpdateTime(new Date()); + + // 更新总状态 - 关键修改:确保状态正确更新 + String oldStatus = application.getStatus(); if ("APPROVED".equals(reviewBo.getReviewResult())) { application.setStatus(WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode()); + log.info("🔍 [学院审核] 审核通过,状态更新: {} -> {}", oldStatus, WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode()); } else if ("REJECTED".equals(reviewBo.getReviewResult())) { application.setStatus(WorkStudyApplicationStatusEnum.COLLEGE_REJECTED.getCode()); + log.info("🔍 [学院审核] 审核拒绝,状态更新: {} -> {}", oldStatus, WorkStudyApplicationStatusEnum.COLLEGE_REJECTED.getCode()); } - return baseMapper.updateById(application) > 0; + // 使用updateById确保更新 + boolean result = baseMapper.updateById(application) > 0; + log.info("🔍 [学院审核] 数据库更新结果: {}", result ? "成功" : "失败"); + + if (result) { + // 验证更新后的状态 + JcbtWorkStudyApplication updatedApplication = baseMapper.selectById(reviewBo.getApplicationId()); + log.info("🔍 [学院审核] 更新后验证状态: {}, 审核状态: {}", updatedApplication.getStatus(), updatedApplication.getCollegeReviewStatus()); + + // 确保状态更新成功 + if ("APPROVED".equals(reviewBo.getReviewResult()) && !WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode().equals(updatedApplication.getStatus())) { + log.error("🔍 [学院审核] 状态更新失败!期望: {}, 实际: {}", WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode(), updatedApplication.getStatus()); + throw new ServiceException("状态更新失败,请重试"); + } + } + + return result; } /** @@ -431,8 +460,18 @@ public class JcbtWorkStudyApplicationServiceImpl implements IJcbtWorkStudyApplic */ @Override public TableDataInfo queryPendingCollegeReview(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) { + // 确保只查询已提交状态的申请(待学院审核) bo.setStatus(WorkStudyApplicationStatusEnum.SUBMITTED.getCode()); - return queryPageList(bo, pageQuery); + log.info("🔍 [查询待审核] 查询条件 - 状态: {}, 学院ID: {}", bo.getStatus(), bo.getCollegeId()); + + TableDataInfo result = queryPageList(bo, pageQuery); + log.info("🔍 [查询待审核] 查询结果 - 总数: {}, 当前页数据: {}", result.getTotal(), result.getRows().size()); + + if (result.getRows().size() > 0) { + log.info("🔍 [查询待审核] 第一条数据状态: {}", result.getRows().get(0).getStatus()); + } + + return result; } /** diff --git a/web/src/views/jcbt/workstudy/depreview/components/PendingApplications.vue b/web/src/views/jcbt/workstudy/depreview/components/PendingApplications.vue index 12fece55..5a1d6831 100644 --- a/web/src/views/jcbt/workstudy/depreview/components/PendingApplications.vue +++ b/web/src/views/jcbt/workstudy/depreview/components/PendingApplications.vue @@ -206,7 +206,13 @@ const getList = async () => { console.log('🔍 [调试] 开始获取待审核申请列表'); console.log('🔍 [调试] 查询参数:', queryParams); - const response = await listPendingApplications(queryParams); + // 添加时间戳防止缓存 + const queryParamsWithTimestamp = { + ...queryParams, + _t: Date.now() + }; + + const response = await listPendingApplications(queryParamsWithTimestamp); console.log('🔍 [调试] API原始响应:', response); // 根据实际响应格式处理数据 @@ -319,18 +325,28 @@ const submitReview = async () => { if (!valid) return; try { + console.log('🔍 [前端调试] 开始提交审核'); + console.log('🔍 [前端调试] 审核类型:', reviewDialog.type); + console.log('🔍 [前端调试] 审核表单:', reviewDialog.form); + if (reviewDialog.type === 'single') { - await reviewApplication(reviewDialog.form); + const result = await reviewApplication(reviewDialog.form); + console.log('🔍 [前端调试] 单个审核API响应:', result); } else { - await batchReviewApplications(ids.value, reviewDialog.form.reviewResult, reviewDialog.form.reviewComment); + const result = await batchReviewApplications(ids.value, reviewDialog.form.reviewResult, reviewDialog.form.reviewComment); + console.log('🔍 [前端调试] 批量审核API响应:', result); } ElMessage.success('审核成功'); reviewDialog.visible = false; - getList(); + + console.log('🔍 [前端调试] 审核成功,开始刷新列表'); + await getList(); // 等待列表刷新完成 + console.log('🔍 [前端调试] 列表刷新完成'); + emit('refresh-statistics'); } catch (error) { - console.error('审核失败:', error); + console.error('🔍 [前端调试] 审核失败:', error); ElMessage.error('审核失败'); } };