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 index fef41ec7..836ecb5b 100644 --- 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 @@ -26,10 +26,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; -<<<<<<< HEAD import lombok.extern.slf4j.Slf4j; -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 import java.util.List; import java.util.Map; @@ -41,10 +38,7 @@ import java.util.HashMap; * @author ruoyi * @date 2025-01-01 */ -<<<<<<< HEAD @Slf4j -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 @Validated @Tag(name = "奖学金申请记录管理", description = "奖学金申请记录管理Controller") @RestController @@ -97,7 +91,6 @@ public class JcbtScholarshipApplicationController extends BaseController { @PutMapping @Operation(summary = "修改奖学金申请记录") public R edit(@Parameter(description = "奖学金申请记录") @Validated(EditGroup.class) @RequestBody JcbtScholarshipApplicationBo bo) { -<<<<<<< HEAD log.info("🔍 [DEBUG] Controller.edit 开始执行"); log.info("🔍 [DEBUG] 接收到的BO对象: {}", bo); log.info("🔍 [DEBUG] 关键字段检查:"); @@ -107,7 +100,7 @@ public class JcbtScholarshipApplicationController extends BaseController { log.info(" - status: {}", bo.getStatus()); log.info(" - currentStatus: {}", bo.getCurrentStatus()); log.info(" - reviewComment: {}", bo.getReviewComment()); - + try { boolean result = applicationService.updateByBo(bo); log.info("🔍 [DEBUG] Service.updateByBo 执行结果: {}", result); @@ -118,9 +111,6 @@ public class JcbtScholarshipApplicationController extends BaseController { log.error("❌ [ERROR] 异常消息: {}", e.getMessage()); throw e; } -======= - return toAjax(applicationService.updateByBo(bo)); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } /** @@ -367,7 +357,6 @@ public class JcbtScholarshipApplicationController extends BaseController { } return R.ok(result); } -<<<<<<< HEAD /** * 调试接口:详细SQL日志输出测试 @@ -425,6 +414,4 @@ public class JcbtScholarshipApplicationController extends BaseController { return R.ok(result); } -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipApplication.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipApplication.java index 13b5273f..c477ca5e 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipApplication.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipApplication.java @@ -1,10 +1,7 @@ package org.dromara.jcbt.domain; import com.baomidou.mybatisplus.annotation.*; -<<<<<<< HEAD import com.fasterxml.jackson.annotation.JsonIgnore; -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 import lombok.Data; import lombok.EqualsAndHashCode; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -23,7 +20,6 @@ import java.util.Date; @TableName("jcbt_scholarship_application") public class JcbtScholarshipApplication extends BaseEntity { -<<<<<<< HEAD /** * 重写父类的createDept字段,排除此字段因为数据库表中不存在create_dept列 * 通过重新声明字段并标记为不存在来避免MyBatis-Plus自动处理 @@ -37,8 +33,6 @@ public class JcbtScholarshipApplication extends BaseEntity { -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 @Serial private static final long serialVersionUID = 1L; @@ -49,15 +43,12 @@ public class JcbtScholarshipApplication extends BaseEntity { private Long id; /** -<<<<<<< HEAD * 申请编号 */ @TableField("application_no") private String applicationNo; /** -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 * 批次ID */ private Long batchId; @@ -70,12 +61,8 @@ public class JcbtScholarshipApplication extends BaseEntity { /** * 学生学号 */ -<<<<<<< HEAD @TableField("student_no") private String studentNo; -======= - private String studentCode; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 学生姓名 @@ -93,15 +80,9 @@ public class JcbtScholarshipApplication extends BaseEntity { private Long deptId; /** -<<<<<<< HEAD * 专业ID */ private Long majorId; -======= - * 学院名称 - */ - private String deptName; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 班级ID @@ -109,40 +90,14 @@ public class JcbtScholarshipApplication extends BaseEntity { private Long classId; /** -<<<<<<< HEAD * 申请类型:RECOMMEND-教师推荐,AUTO-自动评定,DIRECT-直接指定 */ @TableField("application_type") -======= - * 班级名称 - */ - private String className; - - /** - * 申请人类型:STUDENT-学生申请,TEACHER-教师代申请 - */ - private String applicantType; - - /** - * 申请人ID(班主任ID) - */ - private Long applicantId; - - /** - * 申请人姓名(班主任姓名) - */ - private String applicantName; - - /** - * 申请类型:RECOMMEND-教师推荐,AUTO-自动评定,DIRECT-直接指定 - */ ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 private String applicationType; /** * 申请原因 */ -<<<<<<< HEAD @TableField("apply_reason") private String applyReason; @@ -183,113 +138,12 @@ public class JcbtScholarshipApplication extends BaseEntity { */ @TableField("current_status") private String currentStatus; -======= - private String applicationReason; - - /** - * 申请说明 - */ - private String applicationDescription; - - /** - * 综合测评成绩 - */ - private Double comprehensiveScore; - - /** - * 学习成绩 - */ - private Double academicScore; - - /** - * 德育成绩 - */ - private Double moralScore; - - /** - * 体育成绩 - */ - private Double physicalScore; - - /** - * 美育成绩 - */ - private Double aestheticScore; - - /** - * 劳育成绩 - */ - private Double laborScore; - - /** - * 获奖情况 - */ - private String awards; - - /** - * 社会实践情况 - */ - private String socialPractice; - - /** - * 家庭经济情况 - */ - private String familyEconomicStatus; - - /** - * 申请状态:DRAFT-草稿,SUBMITTED-已提交,REVIEWING-审核中,APPROVED-已通过,REJECTED-已拒绝,WITHDRAWN-已撤回 - */ - private String status; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 提交时间 */ private Date submitTime; -<<<<<<< HEAD - -======= - /** - * 审核时间 - */ - private Date reviewTime; - - /** - * 审核人ID - */ - private Long reviewerId; - - /** - * 审核人姓名 - */ - private String reviewerName; - - /** - * 审核意见 - */ - private String reviewComment; - - /** - * 是否需要材料:0-否,1-是 - */ - private Integer requireMaterials; - - /** - * 材料上传状态:PENDING-待上传,PARTIAL-部分上传,COMPLETE-完整上传 - */ - private String materialStatus; - - /** - * 排序号 - */ - private Integer sortOrder; - - /** - * 备注 - */ - private String remark; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 租户ID diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipBatch.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipBatch.java index 9706bb46..35f22ff1 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipBatch.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipBatch.java @@ -98,7 +98,6 @@ public class JcbtScholarshipBatch extends BaseEntity { private String noticeContent; /** -<<<<<<< HEAD * 租户ID */ @TableField("tenant_id") @@ -111,8 +110,6 @@ public class JcbtScholarshipBatch extends BaseEntity { private Integer deleted; /** -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 * 关联的奖学金类型ID列表(非数据库字段) */ @TableField(exist = false) diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipCompatibility.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipCompatibility.java index 620d0cb5..52c35828 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipCompatibility.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipCompatibility.java @@ -56,10 +56,7 @@ public class JcbtScholarshipCompatibility extends BaseEntity { /** * 租户ID */ -<<<<<<< HEAD @TableField("tenant_id") -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 private Long tenantId; /** diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipApplicationBo.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipApplicationBo.java index 673dfc2c..1f88597e 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipApplicationBo.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipApplicationBo.java @@ -45,11 +45,7 @@ public class JcbtScholarshipApplicationBo extends BaseEntity { */ @NotBlank(message = "学生学号不能为空", groups = { AddGroup.class, EditGroup.class }) @Size(max = 50, message = "学生学号长度不能超过50个字符") -<<<<<<< HEAD private String studentNo; -======= - private String studentCode; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 学生姓名 @@ -87,20 +83,7 @@ public class JcbtScholarshipApplicationBo extends BaseEntity { @Size(max = 100, message = "班级名称长度不能超过100个字符") private String className; -<<<<<<< HEAD // 已删除 applicantType 和 applicantId 字段 -======= - /** - * 申请人类型:STUDENT-学生申请,TEACHER-教师代申请 - */ - @NotBlank(message = "申请人类型不能为空", groups = { AddGroup.class, EditGroup.class }) - private String applicantType; - - /** - * 申请人ID(班主任ID) - */ - private Long applicantId; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 申请人姓名(班主任姓名) @@ -161,7 +144,6 @@ public class JcbtScholarshipApplicationBo extends BaseEntity { private Double aestheticScore; /** -<<<<<<< HEAD * 劳动成绩 */ @DecimalMin(value = "0", message = "劳动成绩不能为负数") @@ -198,37 +180,9 @@ public class JcbtScholarshipApplicationBo extends BaseEntity { * 当前状态 */ private String currentStatus; - + /** * 状态字段(前端使用,映射到currentStatus) -======= - * 劳育成绩 - */ - @DecimalMin(value = "0", message = "劳育成绩不能为负数") - @DecimalMax(value = "100", message = "劳育成绩不能超过100分") - private Double laborScore; - - /** - * 获奖情况 - */ - @Size(max = 2000, message = "获奖情况长度不能超过2000个字符") - private String awards; - - /** - * 社会实践情况 - */ - @Size(max = 2000, message = "社会实践情况长度不能超过2000个字符") - private String socialPractice; - - /** - * 家庭经济情况 - */ - @Size(max = 1000, message = "家庭经济情况长度不能超过1000个字符") - private String familyEconomicStatus; - - /** - * 申请状态:DRAFT-草稿,SUBMITTED-已提交,REVIEWING-审核中,APPROVED-已通过,REJECTED-已拒绝,WITHDRAWN-已撤回 ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 */ private String status; @@ -236,28 +190,27 @@ public class JcbtScholarshipApplicationBo extends BaseEntity { * 提交时间 */ private Date submitTime; -<<<<<<< HEAD - + /** * 审核评语 */ @Size(max = 1000, message = "审核评语长度不能超过1000个字符") private String reviewComment; - + // Getter和Setter方法,确保status和currentStatus保持同步 public String getStatus() { return this.currentStatus; } - + public void setStatus(String status) { this.status = status; this.currentStatus = status; } - + public String getCurrentStatus() { return this.currentStatus; } - + public void setCurrentStatus(String currentStatus) { this.currentStatus = currentStatus; this.status = currentStatus; @@ -276,51 +229,4 @@ public class JcbtScholarshipApplicationBo extends BaseEntity { public void setApplicationStatus(String applicationStatus) { this.currentStatus = applicationStatus; } -======= - - /** - * 审核时间 - */ - private Date reviewTime; - - /** - * 审核人ID - */ - private Long reviewerId; - - /** - * 审核人姓名 - */ - @Size(max = 100, message = "审核人姓名长度不能超过100个字符") - private String reviewerName; - - /** - * 审核意见 - */ - @Size(max = 1000, message = "审核意见长度不能超过1000个字符") - private String reviewComment; - - /** - * 是否需要材料:0-否,1-是 - */ - private Integer requireMaterials; - - /** - * 材料上传状态:PENDING-待上传,PARTIAL-部分上传,COMPLETE-完整上传 - */ - private String materialStatus; - - /** - * 排序号 - */ - @Min(value = 0, message = "排序号不能小于0") - private Integer sortOrder; - - /** - * 备注 - */ - @Size(max = 500, message = "备注长度不能超过500个字符") - private String remark; - ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipBatchBo.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipBatchBo.java index a322eabd..8e2d556d 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipBatchBo.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipBatchBo.java @@ -118,12 +118,9 @@ public class JcbtScholarshipBatchBo extends BaseEntity { */ private List scholarshipTypeIds; -<<<<<<< HEAD /** * 租户ID */ private Long tenantId; -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipCompatibilityBo.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipCompatibilityBo.java index 61a08fc9..fc98d150 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipCompatibilityBo.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipCompatibilityBo.java @@ -60,12 +60,9 @@ public class JcbtScholarshipCompatibilityBo extends BaseEntity { @Size(max = 500, message = "关系描述长度不能超过500个字符") private String description; -<<<<<<< HEAD /** * 租户ID */ private Long tenantId; -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipApplicationVo.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipApplicationVo.java index 3fa8d7f9..73b96ddc 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipApplicationVo.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipApplicationVo.java @@ -49,7 +49,6 @@ public class JcbtScholarshipApplicationVo implements Serializable { private String scholarshipTypeName; /** -<<<<<<< HEAD * 申请编号 */ private String applicationNo; @@ -58,11 +57,6 @@ public class JcbtScholarshipApplicationVo implements Serializable { * 学生学号 */ private String studentNo; -======= - * 学生学号 - */ - private String studentCode; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 学生姓名 @@ -85,14 +79,11 @@ public class JcbtScholarshipApplicationVo implements Serializable { private String deptName; /** -<<<<<<< HEAD * 专业ID */ private Long majorId; /** -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 * 班级ID */ private Long classId; @@ -102,19 +93,7 @@ public class JcbtScholarshipApplicationVo implements Serializable { */ private String className; -<<<<<<< HEAD // 已删除 applicantType 和 applicantId 字段 -======= - /** - * 申请人类型 - */ - private String applicantType; - - /** - * 申请人ID - */ - private Long applicantId; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 申请人姓名 @@ -127,7 +106,6 @@ public class JcbtScholarshipApplicationVo implements Serializable { private String applicationType; /** -<<<<<<< HEAD * 当前状态 */ private String currentStatus; @@ -172,66 +150,6 @@ public class JcbtScholarshipApplicationVo implements Serializable { * 在专业的排名 */ private Integer rankingInMajor; -======= - * 申请原因 - */ - private String applicationReason; - - /** - * 申请详细描述 - */ - private String applicationDescription; - - /** - * 综合测评成绩 - */ - private Double comprehensiveScore; - - /** - * 学习成绩 - */ - private Double academicScore; - - /** - * 德育成绩 - */ - private Double moralScore; - - /** - * 体育成绩 - */ - private Double physicalScore; - - /** - * 美育成绩 - */ - private Double aestheticScore; - - /** - * 劳育成绩 - */ - private Double laborScore; - - /** - * 获奖情况 - */ - private String awards; - - /** - * 社会实践情况 - */ - private String socialPractice; - - /** - * 家庭经济状况 - */ - private String familyEconomicStatus; - - /** - * 申请状态 - */ - private String status; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 提交时间 @@ -240,41 +158,9 @@ public class JcbtScholarshipApplicationVo implements Serializable { private Date submitTime; /** -<<<<<<< HEAD * 租户编号 */ private String tenantId; -======= - * 审核时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date reviewTime; - - /** - * 审核人ID - */ - private Long reviewerId; - - /** - * 审核人姓名 - */ - private String reviewerName; - - /** - * 审核意见 - */ - private String reviewComment; - - /** - * 是否需要材料 - */ - private Integer requireMaterials; - - /** - * 材料状态 - */ - private String materialStatus; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 备注 diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipBatchVo.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipBatchVo.java index e81365b8..ab36f7f8 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipBatchVo.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipBatchVo.java @@ -154,12 +154,9 @@ public class JcbtScholarshipBatchVo implements Serializable { */ private List scholarshipTypeIds; -<<<<<<< HEAD /** * 租户ID */ private Long tenantId; -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipCompatibilityVo.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipCompatibilityVo.java index 3b128daf..7e691eeb 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipCompatibilityVo.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipCompatibilityVo.java @@ -91,12 +91,9 @@ public class JcbtScholarshipCompatibilityVo implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; -<<<<<<< HEAD /** * 租户ID */ private Long tenantId; -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipApplicationMapper.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipApplicationMapper.java index b7360cae..452d5280 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipApplicationMapper.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipApplicationMapper.java @@ -4,11 +4,8 @@ import org.dromara.jcbt.domain.JcbtScholarshipApplication; import org.dromara.jcbt.domain.vo.JcbtScholarshipApplicationVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; -<<<<<<< HEAD import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.Wrapper; -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 import java.util.List; @@ -21,7 +18,6 @@ import java.util.List; public interface JcbtScholarshipApplicationMapper extends BaseMapperPlus { /** -<<<<<<< HEAD * 自定义分页查询(包含关联表信息) * * @param page 分页对象 @@ -32,19 +28,12 @@ public interface JcbtScholarshipApplicationMapper extends BaseMapperPlus>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 * * @param applicantId 申请人ID(班主任ID) * @param batchId 批次ID * @return 申请记录列表 */ -<<<<<<< HEAD // List selectApplicationsByApplicant(@Param("applicantId") Long applicantId, @Param("batchId") Long batchId); -======= - List selectApplicationsByApplicant(@Param("applicantId") Long applicantId, @Param("batchId") Long batchId); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 /** * 查询班级的申请记录列表 @@ -65,7 +54,6 @@ public interface JcbtScholarshipApplicationMapper extends BaseMapperPlus selectPendingApplications(@Param("reviewerId") Long reviewerId, @Param("status") String status); /** -<<<<<<< HEAD * 根据ID查询申请记录详情(包含关联信息) * * @param id 主键ID @@ -74,8 +62,6 @@ public interface JcbtScholarshipApplicationMapper extends BaseMapperPlus>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 * 检查学生在指定批次中是否已有申请记录 * * @param studentId 学生ID diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipQuotaMapper.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipQuotaMapper.java index cdec0ce0..e6fae47a 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipQuotaMapper.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipQuotaMapper.java @@ -103,7 +103,6 @@ public interface JcbtScholarshipQuotaMapper extends BaseMapperPlus selectQuotaTreeByBatchAndType(@Param("batchId") Long batchId, @Param("scholarshipTypeId") Long scholarshipTypeId); -<<<<<<< HEAD /** * 查询班级级别的名额分配 * @@ -116,6 +115,4 @@ public interface JcbtScholarshipQuotaMapper extends BaseMapperPlus>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipApplicationService.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipApplicationService.java index 6722bc13..f19ce9f0 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipApplicationService.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipApplicationService.java @@ -204,16 +204,11 @@ public interface IJcbtScholarshipApplicationService { * * @param batchId 批次ID * @param classId 班级ID -<<<<<<< HEAD * @return 奖学金类型列表(包含名额信息) -======= - * @return 带名额信息的奖学金类型列表 ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 */ List> getScholarshipTypesWithQuota(Long batchId, Long classId); /** -<<<<<<< HEAD * 测试班级名额查询(用于SQL日志调试) * * @param classId 班级ID @@ -233,8 +228,6 @@ public interface IJcbtScholarshipApplicationService { Map testSchoolQuotaQuery(Long batchId, Long scholarshipTypeId); /** -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 * 确认选择班级(当用户从多个班级中选择一个时调用) * * @param teacherId 班主任ID diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipQuotaService.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipQuotaService.java index 70ff5f02..9c580306 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipQuotaService.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipQuotaService.java @@ -177,7 +177,6 @@ public interface IJcbtScholarshipQuotaService { */ String validateQuotaAllocation(JcbtScholarshipQuotaBo bo); -<<<<<<< HEAD /** * 查询班级级别的名额分配 * @@ -188,6 +187,4 @@ public interface IJcbtScholarshipQuotaService { */ JcbtScholarshipQuotaVo selectClassQuota(Long classId, Long scholarshipTypeId, Long batchId); -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipApplicationServiceImpl.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipApplicationServiceImpl.java index bf535b8e..721b4798 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipApplicationServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipApplicationServiceImpl.java @@ -37,13 +37,9 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -<<<<<<< HEAD import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.ThreadLocalRandom; -======= -import java.util.*; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 import lombok.extern.slf4j.Slf4j; /** @@ -75,11 +71,7 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp */ @Override public JcbtScholarshipApplicationVo queryById(Long id) { -<<<<<<< HEAD return baseMapper.selectByIdWithRelations(id); -======= - return baseMapper.selectVoById(id); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } /** @@ -88,12 +80,8 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp @Override public TableDataInfo queryPageList(JcbtScholarshipApplicationBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); -<<<<<<< HEAD // 使用自定义分页查询(包含关联表信息) Page result = baseMapper.selectJcbtScholarshipApplicationPage(pageQuery.build(), lqw); -======= - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 return TableDataInfo.build(result); } @@ -111,16 +99,11 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(ObjectUtil.isNotNull(bo.getBatchId()), JcbtScholarshipApplication::getBatchId, bo.getBatchId()); lqw.eq(ObjectUtil.isNotNull(bo.getScholarshipTypeId()), JcbtScholarshipApplication::getScholarshipTypeId, bo.getScholarshipTypeId()); -<<<<<<< HEAD lqw.eq(StringUtils.isNotBlank(bo.getStudentNo()), JcbtScholarshipApplication::getStudentNo, bo.getStudentNo()); -======= - lqw.eq(StringUtils.isNotBlank(bo.getStudentCode()), JcbtScholarshipApplication::getStudentCode, bo.getStudentCode()); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 lqw.like(StringUtils.isNotBlank(bo.getStudentName()), JcbtScholarshipApplication::getStudentName, bo.getStudentName()); lqw.eq(ObjectUtil.isNotNull(bo.getStudentId()), JcbtScholarshipApplication::getStudentId, bo.getStudentId()); lqw.eq(ObjectUtil.isNotNull(bo.getDeptId()), JcbtScholarshipApplication::getDeptId, bo.getDeptId()); lqw.eq(ObjectUtil.isNotNull(bo.getClassId()), JcbtScholarshipApplication::getClassId, bo.getClassId()); -<<<<<<< HEAD // 已删除 applicantType 和 applicantId 字段 lqw.eq(StringUtils.isNotBlank(bo.getStatus()), JcbtScholarshipApplication::getCurrentStatus, bo.getStatus()); // 支持前端 applicationStatus 查询参数 @@ -129,14 +112,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp JcbtScholarshipApplication::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); // 注意:排序在XML中处理,避免SQL语法错误 // lqw.orderByDesc(JcbtScholarshipApplication::getCreateTime); -======= - lqw.eq(StringUtils.isNotBlank(bo.getApplicantType()), JcbtScholarshipApplication::getApplicantType, bo.getApplicantType()); - lqw.eq(ObjectUtil.isNotNull(bo.getApplicantId()), JcbtScholarshipApplication::getApplicantId, bo.getApplicantId()); - lqw.eq(StringUtils.isNotBlank(bo.getStatus()), JcbtScholarshipApplication::getStatus, bo.getStatus()); - lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, - JcbtScholarshipApplication::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); - lqw.orderByDesc(JcbtScholarshipApplication::getCreateTime); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 return lqw; } @@ -152,7 +127,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp throw new RuntimeException((String) eligibilityCheck.get("message")); } -<<<<<<< HEAD JcbtScholarshipApplication add = MapstructUtils.convert(bo, JcbtScholarshipApplication.class); validEntityBeforeSave(add); @@ -167,23 +141,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp } if (StringUtils.isBlank(add.getApplicationType())) { add.setApplicationType("TEACHER_RECOMMEND"); // 默认为教师推荐类型 -======= - JcbtScholarshipApplication add = BeanUtil.toBean(bo, JcbtScholarshipApplication.class); - validEntityBeforeSave(add); - - // 设置默认值 - if (StringUtils.isBlank(add.getStatus())) { - add.setStatus("DRAFT"); - } - if (StringUtils.isBlank(add.getApplicantType())) { - add.setApplicantType("TEACHER"); - } - if (add.getRequireMaterials() == null) { - add.setRequireMaterials(0); - } - if (StringUtils.isBlank(add.getMaterialStatus())) { - add.setMaterialStatus("PENDING"); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } boolean flag = baseMapper.insert(add) > 0; @@ -199,7 +156,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp @Override @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(JcbtScholarshipApplicationBo bo) { -<<<<<<< HEAD log.info("🔍 [DEBUG] Service.updateByBo 开始执行"); log.info("🔍 [DEBUG] 接收到的BO对象: {}", bo); log.info("🔍 [DEBUG] BO关键字段检查:"); @@ -210,7 +166,7 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp log.info(" - currentStatus: {}", bo.getCurrentStatus()); log.info(" - batchId: {}", bo.getBatchId()); log.info(" - scholarshipTypeId: {}", bo.getScholarshipTypeId()); - + try { JcbtScholarshipApplication update = MapstructUtils.convert(bo, JcbtScholarshipApplication.class); log.info("🔍 [DEBUG] 转换后的Entity对象: {}", update); @@ -221,15 +177,15 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp log.info(" - currentStatus: {}", update.getCurrentStatus()); log.info(" - batchId: {}", update.getBatchId()); log.info(" - scholarshipTypeId: {}", update.getScholarshipTypeId()); - + log.info("🔍 [DEBUG] 开始执行数据校验"); validEntityBeforeSave(update); log.info("🔍 [DEBUG] 数据校验通过"); - + log.info("🔍 [DEBUG] 开始执行数据库更新"); boolean result = baseMapper.updateById(update) > 0; log.info("🔍 [DEBUG] 数据库更新结果: {}", result); - + return result; } catch (Exception e) { log.error("❌ [ERROR] Service.updateByBo 执行异常", e); @@ -237,62 +193,41 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp log.error("❌ [ERROR] 异常消息: {}", e.getMessage()); throw e; } -======= - JcbtScholarshipApplication update = BeanUtil.toBean(bo, JcbtScholarshipApplication.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } /** * 保存前的数据校验 */ private void validEntityBeforeSave(JcbtScholarshipApplication entity) { -<<<<<<< HEAD log.info("🔍 [DEBUG] validEntityBeforeSave 开始执行"); log.info("🔍 [DEBUG] 待校验的Entity: {}", entity); - + // 数据校验逻辑 log.info("🔍 [DEBUG] 校验学生学号: {}", entity.getStudentNo()); if (StringUtils.isBlank(entity.getStudentNo())) { log.error("❌ [ERROR] 学生学号为空!"); throw new RuntimeException("学生学号不能为空"); } - + log.info("🔍 [DEBUG] 校验学生姓名: {}", entity.getStudentName()); if (StringUtils.isBlank(entity.getStudentName())) { log.error("❌ [ERROR] 学生姓名为空!"); throw new RuntimeException("学生姓名不能为空"); } - + log.info("🔍 [DEBUG] 校验批次ID: {}", entity.getBatchId()); if (entity.getBatchId() == null) { log.error("❌ [ERROR] 批次ID为空!"); throw new RuntimeException("批次ID不能为空"); } - + log.info("🔍 [DEBUG] 校验奖学金类型ID: {}", entity.getScholarshipTypeId()); if (entity.getScholarshipTypeId() == null) { log.error("❌ [ERROR] 奖学金类型ID为空!"); throw new RuntimeException("奖学金类型ID不能为空"); } - + log.info("🔍 [DEBUG] validEntityBeforeSave 校验完成"); -======= - // 数据校验逻辑 - if (StringUtils.isBlank(entity.getStudentCode())) { - throw new RuntimeException("学生学号不能为空"); - } - if (StringUtils.isBlank(entity.getStudentName())) { - throw new RuntimeException("学生姓名不能为空"); - } - if (entity.getBatchId() == null) { - throw new RuntimeException("批次ID不能为空"); - } - if (entity.getScholarshipTypeId() == null) { - throw new RuntimeException("奖学金类型ID不能为空"); - } ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } /** @@ -305,11 +240,7 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp // 删除前校验逻辑 for (Long id : ids) { JcbtScholarshipApplicationVo application = queryById(id); -<<<<<<< HEAD if (application != null && "APPROVED".equals(application.getCurrentStatus())) { -======= - if (application != null && "APPROVED".equals(application.getStatus())) { ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 throw new RuntimeException("已通过审核的申请不能删除"); } } @@ -324,7 +255,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp @Transactional(rollbackFor = Exception.class) public Boolean batchSubmitApplicationsByTeacher(Long batchId, Long scholarshipTypeId, Long classId, List studentApplications) { -<<<<<<< HEAD // 检查班级名额 - 使用和前端一致的查询方法 log.info("开始检查班级名额 - 批次ID: {}, 奖学金类型ID: {}, 班级ID: {}, 申请人数: {}", batchId, scholarshipTypeId, classId, studentApplications.size()); @@ -358,12 +288,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp log.error("全校名额不足 - 可用名额: {}, 申请人数: {}", totalAvailable, studentApplications.size()); throw new RuntimeException("全校可用名额不足,无法提交申请"); } -======= - // 检查班级名额 - JcbtScholarshipClassQuotaVo classQuota = classQuotaService.queryAvailableQuota(classId, scholarshipTypeId, batchId); - if (classQuota == null || classQuota.getAvailableQuota() < studentApplications.size()) { - throw new RuntimeException("班级可用名额不足,无法提交申请"); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } // 批量创建申请记录 @@ -371,18 +295,13 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp applicationBo.setBatchId(batchId); applicationBo.setScholarshipTypeId(scholarshipTypeId); applicationBo.setClassId(classId); -<<<<<<< HEAD applicationBo.setApplicationType("TEACHER_RECOMMEND"); // 班主任代申请属于教师推荐类型 -======= - applicationBo.setApplicantType("TEACHER"); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 applicationBo.setStatus("SUBMITTED"); applicationBo.setSubmitTime(new Date()); insertByBo(applicationBo); } -<<<<<<< HEAD // 更新名额使用情况 if (classQuota != null) { // 有班级名额分配,更新班级名额 @@ -407,12 +326,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp } } } -======= - // 更新班级名额使用情况 - classQuotaService.updateQuotaUsage(classQuota.getId(), - classQuota.getUsedQuota() + studentApplications.size(), - classQuota.getAvailableQuota() - studentApplications.size()); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 return true; } @@ -422,13 +335,9 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp */ @Override public List queryApplicationsByApplicant(Long applicantId, Long batchId) { -<<<<<<< HEAD // TODO: 重新设计查询逻辑,因为applicantId字段已删除 // 可能需要通过班级ID或其他方式查询班主任负责的申请记录 return new ArrayList<>(); -======= - return baseMapper.selectApplicationsByApplicant(applicantId, batchId); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } /** @@ -488,19 +397,11 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp if (application == null) { throw new RuntimeException("申请记录不存在"); } -<<<<<<< HEAD if (!"DRAFT".equals(application.getCurrentStatus())) { throw new RuntimeException("只有草稿状态的申请才能提交"); } application.setCurrentStatus("SUBMITTED"); -======= - if (!"DRAFT".equals(application.getStatus())) { - throw new RuntimeException("只有草稿状态的申请才能提交"); - } - - application.setStatus("SUBMITTED"); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 application.setSubmitTime(new Date()); return baseMapper.updateById(application) > 0; } @@ -515,21 +416,12 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp if (application == null) { throw new RuntimeException("申请记录不存在"); } -<<<<<<< HEAD if ("APPROVED".equals(application.getCurrentStatus()) || "REJECTED".equals(application.getCurrentStatus())) { throw new RuntimeException("已审核的申请不能撤回"); } application.setCurrentStatus("WITHDRAWN"); // 已删除 remark 字段,撤回原因暂时不存储 -======= - if ("APPROVED".equals(application.getStatus()) || "REJECTED".equals(application.getStatus())) { - throw new RuntimeException("已审核的申请不能撤回"); - } - - application.setStatus("WITHDRAWN"); - application.setRemark(StringUtils.isNotBlank(reason) ? reason : "申请人主动撤回"); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 return baseMapper.updateById(application) > 0; } @@ -779,11 +671,7 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp List> students = new ArrayList<>(); try { -<<<<<<< HEAD // 使用自包含查询获取学生列表,关联班级表获取学院和专业信息 -======= - // 使用自包含查询获取学生列表 ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 String sql = """ SELECT sm.id, @@ -792,7 +680,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp sm.gender, sm.phone, sm.email, -<<<<<<< HEAD sm.student_status, cm.college_id, cm.college_name, @@ -806,13 +693,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp AND sm.deleted = 0 AND sm.student_status = '1' AND (cm.deleted IS NULL OR cm.deleted = 0) -======= - sm.student_status - FROM xg_student_msg sm - WHERE sm.class_id = ? - AND sm.deleted = 0 - AND sm.student_status = '1' ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 ORDER BY sm.student_no ASC """; @@ -836,8 +716,7 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp studentMap.put("phone", student.get("phone") != null ? student.get("phone").toString() : ""); studentMap.put("email", student.get("email") != null ? student.get("email").toString() : ""); studentMap.put("status", student.get("student_status") != null ? student.get("student_status").toString() : "1"); -<<<<<<< HEAD - + // 添加学院和专业信息 studentMap.put("collegeId", student.get("college_id") != null ? student.get("college_id").toString() : ""); studentMap.put("collegeName", student.get("college_name") != null ? student.get("college_name").toString() : ""); @@ -845,9 +724,7 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp studentMap.put("majorName", student.get("major_name") != null ? student.get("major_name").toString() : ""); studentMap.put("className", student.get("class_name") != null ? student.get("class_name").toString() : ""); studentMap.put("grade", student.get("grade") != null ? student.get("grade").toString() : ""); - -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 + students.add(studentMap); } log.info("成功获取班级学生列表 - 班级ID: {}, 学生数量: {}", classId, students.size()); @@ -932,12 +809,8 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp List> scholarshipTypes = new ArrayList<>(); try { -<<<<<<< HEAD log.info("=== 开始获取带名额信息的奖学金类型 ==="); log.info("输入参数 - 批次ID: {}, 班级ID: {}", batchId, classId); -======= - log.info("获取带名额信息的奖学金类型,批次ID: {}, 班级ID: {}", batchId, classId); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 // 获取该批次关联的所有奖学金类型ID(从批次类型关联表) List batchTypeIds = batchTypeService.getScholarshipTypeIdsByBatchId(batchId); @@ -945,7 +818,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp if (batchTypeIds != null && !batchTypeIds.isEmpty()) { for (Long scholarshipTypeId : batchTypeIds) { -<<<<<<< HEAD log.info("--- 处理奖学金类型ID: {} ---", scholarshipTypeId); // 查询奖学金类型基本信息 @@ -955,10 +827,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp typeInfo.getId(), typeInfo.getTypeName(), typeInfo.getStatus(), typeInfo.getAwardAmount(), typeInfo.getLevelType()) : "null"); -======= - // 查询奖学金类型基本信息 - JcbtScholarshipTypeVo typeInfo = scholarshipTypeService.queryById(scholarshipTypeId); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 if (typeInfo != null && typeInfo.getStatus() == 1) { // 只返回启用的类型 Map scholarshipType = new HashMap<>(); scholarshipType.put("id", scholarshipTypeId); @@ -968,7 +836,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp scholarshipType.put("typeCategory", typeInfo.getTypeCategory()); scholarshipType.put("levelType", typeInfo.getLevelType()); -<<<<<<< HEAD // 查询该班级在该奖学金类型下的名额分配信息(从jcbt_scholarship_quota表查询) log.info("开始查询班级名额 - SQL参数: classId={}, scholarshipTypeId={}, batchId={}", classId, scholarshipTypeId, batchId); log.info("执行SQL: SELECT * FROM jcbt_scholarship_quota WHERE allocation_level = 'CLASS' AND target_dept_id = {} AND scholarship_type_id = {} AND batch_id = {} AND status = 'ACTIVE'", classId, scholarshipTypeId, batchId); @@ -982,14 +849,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp if (classQuota != null) { // 有班级名额分配 log.info("发现班级名额分配,处理班级名额数据"); -======= - // 查询该班级在该奖学金类型下的名额分配信息 - JcbtScholarshipClassQuotaVo classQuota = classQuotaService.queryAvailableQuota(classId, scholarshipTypeId, batchId); - log.debug("班级名额查询结果,类型ID: {}, 班级ID: {}, 名额信息: {}", scholarshipTypeId, classId, classQuota); - - if (classQuota != null) { - // 有班级名额分配 ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 scholarshipType.put("hasQuota", true); int totalQuota = classQuota.getTotalQuota() != null ? classQuota.getTotalQuota() : 0; int usedQuota = classQuota.getUsedQuota() != null ? classQuota.getUsedQuota() : 0; @@ -1000,7 +859,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp scholarshipType.put("availableQuota", availableQuota); scholarshipType.put("quotaStatus", availableQuota > 0 ? "available" : "full"); -<<<<<<< HEAD log.info("班级名额处理结果 - 类型: {}, 总名额: {}, 已用: {}, 可用: {}, 状态: {}", typeInfo.getTypeName(), totalQuota, usedQuota, availableQuota, availableQuota > 0 ? "available" : "full"); } else { @@ -1020,13 +878,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp } } -======= - log.debug("类型: {}, 总名额: {}, 已用: {}, 可用: {}, 状态: {}", - typeInfo.getTypeName(), totalQuota, usedQuota, availableQuota, availableQuota > 0 ? "available" : "full"); - } else { - // 没有班级名额分配,查询全校统计信息 - List quotaList = quotaService.queryListByBatchAndType(batchId, scholarshipTypeId); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 int totalQuota = quotaList.stream().mapToInt(q -> q.getTotalQuota() != null ? q.getTotalQuota() : 0).sum(); int usedQuota = quotaList.stream().mapToInt(q -> q.getUsedQuota() != null ? q.getUsedQuota() : 0).sum(); int availableQuota = Math.max(0, totalQuota - usedQuota); @@ -1037,23 +888,16 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp scholarshipType.put("availableQuota", availableQuota); scholarshipType.put("quotaStatus", totalQuota > 0 ? (availableQuota > 0 ? "available" : "full") : "unlimited"); -<<<<<<< HEAD log.info("全校名额统计结果 - 类型: {} (全校), 总名额: {}, 已用: {}, 可用: {}, 状态: {}", -======= - log.debug("类型: {} (全校), 总名额: {}, 已用: {}, 可用: {}, 状态: {}", ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 typeInfo.getTypeName(), totalQuota, usedQuota, availableQuota, totalQuota > 0 ? (availableQuota > 0 ? "available" : "full") : "unlimited"); } scholarshipTypes.add(scholarshipType); -<<<<<<< HEAD log.info("奖学金类型 {} 处理完成,添加到结果列表", typeInfo.getTypeName()); } else { log.warn("奖学金类型被跳过 - ID: {}, 原因: {}", scholarshipTypeId, typeInfo == null ? "类型信息不存在" : "状态未启用(status=" + typeInfo.getStatus() + ")"); -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } } @@ -1079,7 +923,6 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp return levelA != null ? levelA.compareTo(levelB) : 0; }); -<<<<<<< HEAD log.info("=== 最终返回结果 ==="); log.info("奖学金类型总数: {}", scholarshipTypes.size()); for (int i = 0; i < scholarshipTypes.size(); i++) { @@ -1089,26 +932,18 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp } } else { log.warn("批次 {} 未关联任何奖学金类型", batchId); -======= - log.info("最终返回的奖学金类型数量: {}", scholarshipTypes.size()); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } return scholarshipTypes; } catch (Exception e) { -<<<<<<< HEAD log.error("=== 获取带名额信息的奖学金类型失败 ==="); log.error("错误参数 - 批次ID: {}, 班级ID: {}", batchId, classId); log.error("错误详情: ", e); -======= - log.error("获取带名额信息的奖学金类型失败,批次ID: {}, 班级ID: {}", batchId, classId, e); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 // 如果调用失败,返回空数据 return new ArrayList<>(); } } -<<<<<<< HEAD /** * 测试班级名额查询(用于SQL日志调试) */ @@ -1322,6 +1157,4 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp return "JX" + dateStr + randomNum; } -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipBatchServiceImpl.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipBatchServiceImpl.java index 46b0ff56..87811e12 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipBatchServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipBatchServiceImpl.java @@ -91,11 +91,7 @@ public class JcbtScholarshipBatchServiceImpl implements IJcbtScholarshipBatchSer @Override @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(JcbtScholarshipBatchBo bo) { -<<<<<<< HEAD JcbtScholarshipBatch add = MapstructUtils.convert(bo, JcbtScholarshipBatch.class); -======= - JcbtScholarshipBatch add = BeanUtil.toBean(bo, JcbtScholarshipBatch.class); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -116,11 +112,7 @@ public class JcbtScholarshipBatchServiceImpl implements IJcbtScholarshipBatchSer @Override @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(JcbtScholarshipBatchBo bo) { -<<<<<<< HEAD JcbtScholarshipBatch update = MapstructUtils.convert(bo, JcbtScholarshipBatch.class); -======= - JcbtScholarshipBatch update = BeanUtil.toBean(bo, JcbtScholarshipBatch.class); ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 validEntityBeforeSave(update); boolean flag = baseMapper.updateById(update) > 0; diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipQuotaServiceImpl.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipQuotaServiceImpl.java index dc440185..e5fd7c85 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipQuotaServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipQuotaServiceImpl.java @@ -493,7 +493,6 @@ public class JcbtScholarshipQuotaServiceImpl implements IJcbtScholarshipQuotaSer return Math.max(0, total - used - reserved); } -<<<<<<< HEAD /** * 查询班级级别的名额分配 * @@ -513,6 +512,4 @@ public class JcbtScholarshipQuotaServiceImpl implements IJcbtScholarshipQuotaSer return result; } -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/JcbtScholarshipQuotaMapper.xml b/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/JcbtScholarshipQuotaMapper.xml index b0136a93..e7e4227b 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/JcbtScholarshipQuotaMapper.xml +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/JcbtScholarshipQuotaMapper.xml @@ -303,7 +303,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY qt.level, qt.target_dept_id -<<<<<<< HEAD -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipApplicationMapper.xml b/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipApplicationMapper.xml index 16a2833c..a4279458 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipApplicationMapper.xml +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipApplicationMapper.xml @@ -9,17 +9,12 @@ -<<<<<<< HEAD -======= - ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 -<<<<<<< HEAD @@ -33,35 +28,6 @@ -======= - - - - - - - - - - - - - - - - - - - - - - - - - - - ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 @@ -71,31 +37,17 @@ -<<<<<<< HEAD select a.id, a.application_no, a.batch_id, b.batch_name, a.scholarship_type_id, st.type_name as scholarship_type_name, a.student_no, a.student_name, a.student_id, a.dept_id, d.dept_name, a.major_id, a.class_id, c.class_name, a.application_type, a.current_status, a.apply_reason, a.self_evaluation, a.calculated_score, a.final_score, a.ranking_in_dept, a.ranking_in_major, a.submit_time, a.tenant_id, -======= - select a.id, a.batch_id, b.batch_name, a.scholarship_type_id, st.type_name as scholarship_type_name, - a.student_code, a.student_name, a.student_id, a.dept_id, a.dept_name, a.class_id, a.class_name, - a.applicant_type, a.applicant_id, a.applicant_name, a.application_type, - a.application_reason, a.application_description, - a.comprehensive_score, a.academic_score, a.moral_score, a.physical_score, a.aesthetic_score, a.labor_score, - a.awards, a.social_practice, a.family_economic_status, - a.status, a.submit_time, a.review_time, a.reviewer_id, a.reviewer_name, a.review_comment, - a.require_materials, a.material_status, a.sort_order, a.remark, a.tenant_id, ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 a.create_by, a.create_time, a.update_by, a.update_time from jcbt_scholarship_application a left join jcbt_scholarship_batch b on a.batch_id = b.id left join jcbt_scholarship_type st on a.scholarship_type_id = st.id -<<<<<<< HEAD left join xg_class_msg c on a.class_id = c.id left join sys_dept d on a.dept_id = d.dept_id -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 @@ -107,17 +59,11 @@ AND ${ew.sqlSegment} -<<<<<<< HEAD ORDER BY a.create_time DESC ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 -<<<<<<< HEAD --> -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 @@ -229,13 +158,10 @@ AND deleted = 0 -<<<<<<< HEAD -======= ->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755 diff --git a/web/src/api/jcbt/povertyApplication.ts b/web/src/api/jcbt/povertyApplication.ts index 764facd4..e719d7f0 100644 --- a/web/src/api/jcbt/povertyApplication.ts +++ b/web/src/api/jcbt/povertyApplication.ts @@ -95,6 +95,14 @@ export interface JcbtPovertyApplicationForm { assistanceTypeNames?: string /** 备注 */ remark?: string + /** 申请表附件URL */ + attachApplicationFormUrl?: string + /** 申请表附件ID */ + attachApplicationFormId?: number + /** 调查表附件URL */ + attachSurveyFormUrl?: string + /** 调查表附件ID */ + attachSurveyFormId?: number } /** @@ -169,6 +177,14 @@ export interface JcbtPovertyApplicationVo { updateBy: number /** 更新时间 */ updateTime: string + /** 申请表附件URL */ + attachApplicationFormUrl: string + /** 申请表附件ID */ + attachApplicationFormId: number + /** 调查表附件URL */ + attachSurveyFormUrl: string + /** 调查表附件ID */ + attachSurveyFormId: number } /** diff --git a/web/src/views/jcbt/poverty/Application/form.vue b/web/src/views/jcbt/poverty/Application/form.vue index a6ea248f..da3cbcbb 100644 --- a/web/src/views/jcbt/poverty/Application/form.vue +++ b/web/src/views/jcbt/poverty/Application/form.vue @@ -200,7 +200,7 @@