Forráskód Böngészése

Merge branch 'master' of http://47.99.164.66:3000/hzdyjs-xg/all-project

zlwu 1 éve
szülő
commit
84d57c6906
22 módosított fájl, 59 hozzáadás és 689 törlés
  1. 1 14
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtScholarshipApplicationController.java
  2. 0 146
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipApplication.java
  3. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipBatch.java
  4. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/JcbtScholarshipCompatibility.java
  5. 6 100
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipApplicationBo.java
  6. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipBatchBo.java
  7. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/bo/JcbtScholarshipCompatibilityBo.java
  8. 0 114
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipApplicationVo.java
  9. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipBatchVo.java
  10. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/domain/vo/JcbtScholarshipCompatibilityVo.java
  11. 0 14
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipApplicationMapper.java
  12. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipQuotaMapper.java
  13. 0 7
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipApplicationService.java
  14. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtScholarshipQuotaService.java
  15. 11 178
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipApplicationServiceImpl.java
  16. 0 8
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipBatchServiceImpl.java
  17. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipQuotaServiceImpl.java
  18. 0 3
      backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/JcbtScholarshipQuotaMapper.xml
  19. 0 74
      backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipApplicationMapper.xml
  20. 16 0
      web/src/api/jcbt/povertyApplication.ts
  21. 10 1
      web/src/views/jcbt/poverty/Application/form.vue
  22. 15 3
      web/src/views/jcbt/poverty/Application/index.vue

+ 1 - 14
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<Void> 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
 }

+ 0 - 146
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

+ 0 - 3
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)

+ 0 - 3
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;
 
     /**

+ 6 - 100
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
+     * 状态字段(前端使用,映射到currentStatus)
      */
     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
 }

+ 0 - 3
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<Long> scholarshipTypeIds;
 
-<<<<<<< HEAD
     /**
      * 租户ID
      */
     private Long tenantId;
 
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 }

+ 0 - 3
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
 }

+ 0 - 114
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
 
     /**
      * 备注

+ 0 - 3
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<Long> scholarshipTypeIds;
 
-<<<<<<< HEAD
     /**
      * 租户ID
      */
     private Long tenantId;
 
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 }

+ 0 - 3
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
 }

+ 0 - 14
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<JcbtScholarshipApplication, JcbtScholarshipApplicationVo> {
 
     /**
-<<<<<<< HEAD
      * 自定义分页查询(包含关联表信息)
      *
      * @param page 分页对象
@@ -32,19 +28,12 @@ public interface JcbtScholarshipApplicationMapper extends BaseMapperPlus<JcbtSch
 
     /**
      * 查询班主任负责班级的申请记录列表(已删除applicantId字段,需重新设计)
-=======
-     * 查询班主任负责班级的申请记录列表
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
      *
      * @param applicantId 申请人ID(班主任ID)
      * @param batchId 批次ID
      * @return 申请记录列表
      */
-<<<<<<< HEAD
     // List<JcbtScholarshipApplicationVo> selectApplicationsByApplicant(@Param("applicantId") Long applicantId, @Param("batchId") Long batchId);
-=======
-    List<JcbtScholarshipApplicationVo> selectApplicationsByApplicant(@Param("applicantId") Long applicantId, @Param("batchId") Long batchId);
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 
     /**
      * 查询班级的申请记录列表
@@ -65,7 +54,6 @@ public interface JcbtScholarshipApplicationMapper extends BaseMapperPlus<JcbtSch
     List<JcbtScholarshipApplicationVo> selectPendingApplications(@Param("reviewerId") Long reviewerId, @Param("status") String status);
 
     /**
-<<<<<<< HEAD
      * 根据ID查询申请记录详情(包含关联信息)
      *
      * @param id 主键ID
@@ -74,8 +62,6 @@ public interface JcbtScholarshipApplicationMapper extends BaseMapperPlus<JcbtSch
     JcbtScholarshipApplicationVo selectByIdWithRelations(@Param("id") Long id);
 
     /**
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
      * 检查学生在指定批次中是否已有申请记录
      *
      * @param studentId 学生ID

+ 0 - 3
backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtScholarshipQuotaMapper.java

@@ -103,7 +103,6 @@ public interface JcbtScholarshipQuotaMapper extends BaseMapperPlus<JcbtScholarsh
     List<JcbtScholarshipQuotaVo> selectQuotaTreeByBatchAndType(@Param("batchId") Long batchId,
                                                                @Param("scholarshipTypeId") Long scholarshipTypeId);
 
-<<<<<<< HEAD
     /**
      * 查询班级级别的名额分配
      *
@@ -116,6 +115,4 @@ public interface JcbtScholarshipQuotaMapper extends BaseMapperPlus<JcbtScholarsh
                                            @Param("scholarshipTypeId") Long scholarshipTypeId,
                                            @Param("batchId") Long batchId);
 
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 }

+ 0 - 7
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<Map<String, Object>> getScholarshipTypesWithQuota(Long batchId, Long classId);
 
     /**
-<<<<<<< HEAD
      * 测试班级名额查询(用于SQL日志调试)
      *
      * @param classId 班级ID
@@ -233,8 +228,6 @@ public interface IJcbtScholarshipApplicationService {
     Map<String, Object> testSchoolQuotaQuery(Long batchId, Long scholarshipTypeId);
 
     /**
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
      * 确认选择班级(当用户从多个班级中选择一个时调用)
      *
      * @param teacherId 班主任ID

+ 0 - 3
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
 }

+ 11 - 178
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<JcbtScholarshipApplicationVo> queryPageList(JcbtScholarshipApplicationBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<JcbtScholarshipApplication> lqw = buildQueryWrapper(bo);
-<<<<<<< HEAD
         // 使用自定义分页查询(包含关联表信息)
         Page<JcbtScholarshipApplicationVo> result = baseMapper.selectJcbtScholarshipApplicationPage(pageQuery.build(), lqw);
-=======
-        Page<JcbtScholarshipApplicationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
         return TableDataInfo.build(result);
     }
 
@@ -111,16 +99,11 @@ public class JcbtScholarshipApplicationServiceImpl implements IJcbtScholarshipAp
         LambdaQueryWrapper<JcbtScholarshipApplication> 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<JcbtScholarshipApplicationBo> 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<JcbtScholarshipApplicationVo> 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<Map<String, Object>> 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<Map<String, Object>> scholarshipTypes = new ArrayList<>();
 
         try {
-<<<<<<< HEAD
             log.info("=== 开始获取带名额信息的奖学金类型 ===");
             log.info("输入参数 - 批次ID: {}, 班级ID: {}", batchId, classId);
-=======
-            log.info("获取带名额信息的奖学金类型,批次ID: {}, 班级ID: {}", batchId, classId);
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 
             // 获取该批次关联的所有奖学金类型ID(从批次类型关联表)
             List<Long> 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<String, Object> 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<JcbtScholarshipQuotaVo> 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
 }

+ 0 - 8
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;
 

+ 0 - 3
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
 }

+ 0 - 3
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
     </select>
 
-<<<<<<< HEAD
     <!-- 查询班级级别的名额分配 -->
     <select id="selectClassQuota" resultMap="JcbtScholarshipQuotaResult">
         <include refid="selectJcbtScholarshipQuotaVo"/>
@@ -314,6 +313,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         and q.status = 'ACTIVE'
     </select>
 
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 </mapper>

+ 0 - 74
backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtScholarshipApplicationMapper.xml

@@ -9,17 +9,12 @@
         <result property="batchName" column="batch_name"/>
         <result property="scholarshipTypeId" column="scholarship_type_id"/>
         <result property="scholarshipTypeName" column="scholarship_type_name"/>
-<<<<<<< HEAD
         <result property="applicationNo" column="application_no"/>
         <result property="studentNo" column="student_no"/>
-=======
-        <result property="studentCode" column="student_code"/>
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
         <result property="studentName" column="student_name"/>
         <result property="studentId" column="student_id"/>
         <result property="deptId" column="dept_id"/>
         <result property="deptName" column="dept_name"/>
-<<<<<<< HEAD
         <result property="majorId" column="major_id"/>
         <result property="classId" column="class_id"/>
         <result property="className" column="class_name"/>
@@ -33,35 +28,6 @@
         <result property="finalScore" column="final_score"/>
         <result property="rankingInDept" column="ranking_in_dept"/>
         <result property="rankingInMajor" column="ranking_in_major"/>
-=======
-        <result property="classId" column="class_id"/>
-        <result property="className" column="class_name"/>
-        <result property="applicantType" column="applicant_type"/>
-        <result property="applicantId" column="applicant_id"/>
-        <result property="applicantName" column="applicant_name"/>
-        <result property="applicationType" column="application_type"/>
-        <result property="applicationReason" column="application_reason"/>
-        <result property="applicationDescription" column="application_description"/>
-        <result property="comprehensiveScore" column="comprehensive_score"/>
-        <result property="academicScore" column="academic_score"/>
-        <result property="moralScore" column="moral_score"/>
-        <result property="physicalScore" column="physical_score"/>
-        <result property="aestheticScore" column="aesthetic_score"/>
-        <result property="laborScore" column="labor_score"/>
-        <result property="awards" column="awards"/>
-        <result property="socialPractice" column="social_practice"/>
-        <result property="familyEconomicStatus" column="family_economic_status"/>
-        <result property="status" column="status"/>
-        <result property="submitTime" column="submit_time"/>
-        <result property="reviewTime" column="review_time"/>
-        <result property="reviewerId" column="reviewer_id"/>
-        <result property="reviewerName" column="reviewer_name"/>
-        <result property="reviewComment" column="review_comment"/>
-        <result property="requireMaterials" column="require_materials"/>
-        <result property="materialStatus" column="material_status"/>
-        <result property="sortOrder" column="sort_order"/>
-        <result property="remark" column="remark"/>
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
         <result property="tenantId" column="tenant_id"/>
         <result property="createBy" column="create_by"/>
         <result property="createTime" column="create_time"/>
@@ -71,31 +37,17 @@
 
     <!-- 基础查询SQL -->
     <sql id="selectJcbtScholarshipApplicationVo">
-<<<<<<< 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
     </sql>
 
     <!-- 分页查询(标准模板) -->
@@ -107,17 +59,11 @@
                 AND ${ew.sqlSegment}
             </if>
         </where>
-<<<<<<< HEAD
         ORDER BY a.create_time DESC
     </select>
 
     <!-- 查询班主任负责班级的申请记录列表(已删除applicantId字段,需重新设计) -->
     <!--
-=======
-    </select>
-
-    <!-- 查询班主任负责班级的申请记录列表 -->
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
     <select id="selectApplicationsByApplicant" resultMap="JcbtScholarshipApplicationResult">
         <include refid="selectJcbtScholarshipApplicationVo"/>
         <where>
@@ -129,10 +75,7 @@
         </where>
         ORDER BY a.create_time DESC
     </select>
-<<<<<<< HEAD
     -->
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 
     <!-- 查询班级的申请记录列表 -->
     <select id="selectApplicationsByClass" resultMap="JcbtScholarshipApplicationResult">
@@ -179,7 +122,6 @@
         SELECT
             a.scholarship_type_id,
             st.type_name as scholarship_type_name,
-<<<<<<< HEAD
             a.current_status,
             COUNT(*) as total_count,
             a.dept_id,
@@ -187,14 +129,6 @@
         FROM jcbt_scholarship_application a
         LEFT JOIN jcbt_scholarship_type st ON a.scholarship_type_id = st.id
         LEFT JOIN sys_dept d ON a.dept_id = d.dept_id
-=======
-            a.status,
-            COUNT(*) as total_count,
-            a.dept_id,
-            a.dept_name
-        FROM jcbt_scholarship_application a
-        LEFT JOIN jcbt_scholarship_type st ON a.scholarship_type_id = st.id
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
         <where>
             a.deleted = 0
             <if test="batchId != null">
@@ -204,13 +138,8 @@
                 AND a.dept_id = #{deptId}
             </if>
         </where>
-<<<<<<< HEAD
         GROUP BY a.scholarship_type_id, a.current_status, a.dept_id
         ORDER BY a.scholarship_type_id, a.current_status
-=======
-        GROUP BY a.scholarship_type_id, a.status, a.dept_id
-        ORDER BY a.scholarship_type_id, a.status
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
     </select>
 
     <!-- 批量更新申请状态 -->
@@ -229,13 +158,10 @@
         AND deleted = 0
     </update>
 
-<<<<<<< HEAD
     <!-- 根据ID查询申请记录详情(包含关联信息) -->
     <select id="selectByIdWithRelations" resultMap="JcbtScholarshipApplicationResult">
         <include refid="selectJcbtScholarshipApplicationVo"/>
         WHERE a.id = #{id} AND a.deleted = 0
     </select>
 
-=======
->>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
 </mapper>

+ 16 - 0
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
 }
 
 /**

+ 10 - 1
web/src/views/jcbt/poverty/Application/form.vue

@@ -200,7 +200,7 @@
 </template>
 
 <script setup name="JcbtPovertyApplicationForm" lang="ts">
-import { ref, onMounted, getCurrentInstance } from 'vue';
+import { ref, onMounted, getCurrentInstance, computed } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import {
   getPovertyApplication,
@@ -212,6 +212,7 @@ import {
   checkDuplicate
 } from '@/api/jcbt/povertyApplication';
 import { UploadFilled, User, House, Document, Folder } from '@element-plus/icons-vue';
+import { getToken } from '@/utils/auth';
 
 const { proxy } = getCurrentInstance();
 const route = useRoute();
@@ -241,6 +242,14 @@ const selectedGroupDescription = ref('');
 // 文件上传
 const fileList = ref([]);
 
+// 文件上传相关
+const uploadHeaders = computed(() => {
+  return {
+    'Authorization': `Bearer ${getToken() || ''}`,
+    'clientid': import.meta.env.VITE_APP_CLIENT_ID || 'e5cd7e4891bf95d1d19206ce24a7b32e'
+  };
+});
+
 // 学生搜索相关
 const filteredStudents = ref([]);
 const studentSearchLoading = ref(false);

+ 15 - 3
web/src/views/jcbt/poverty/Application/index.vue

@@ -768,8 +768,11 @@ const rules = {
 }
 
 // 文件上传相关
-const uploadHeaders = ref({
-  Authorization: "Bearer " + getToken()
+const uploadHeaders = computed(() => {
+  return {
+    'Authorization': `Bearer ${getToken() || ''}`,
+    'clientid': import.meta.env.VITE_APP_CLIENT_ID || 'e5cd7e4891bf95d1d19206ce24a7b32e'
+  };
 })
 
 // 申请表文件列表
@@ -908,7 +911,9 @@ function reset() {
     applicationReason: null,
     remark: null,
     attachApplicationFormUrl: null,
-    attachSurveyFormUrl: null
+    attachApplicationFormId: null,
+    attachSurveyFormUrl: null,
+    attachSurveyFormId: null
   }
 
   // 重置文件列表
@@ -1104,6 +1109,9 @@ function submitForm() {
           open.value = false
           getList()
           getStatistics()
+        }).catch(error => {
+          console.error('新增失败:', error)
+          proxy.$modal.msgError(error.msg || '新增失败,请稍后重试')
         })
       }
     }
@@ -1162,6 +1170,7 @@ function beforeUpload(file) {
 function handleApplicationFormUploadSuccess(response, file) {
   if (response.code === 200) {
     form.value.attachApplicationFormUrl = response.data.url
+    form.value.attachApplicationFormId = response.data.ossId
     applicationFormFileList.value = [{
       name: file.name,
       url: response.data.url
@@ -1176,6 +1185,7 @@ function handleApplicationFormUploadSuccess(response, file) {
 function handleSurveyFormUploadSuccess(response, file) {
   if (response.code === 200) {
     form.value.attachSurveyFormUrl = response.data.url
+    form.value.attachSurveyFormId = response.data.ossId || response.data.id
     surveyFormFileList.value = [{
       name: file.name,
       url: response.data.url
@@ -1195,12 +1205,14 @@ function handleUploadError(error) {
 /** 申请表移除 */
 function handleApplicationFormRemove() {
   form.value.attachApplicationFormUrl = ''
+  form.value.attachApplicationFormId = null
   applicationFormFileList.value = []
 }
 
 /** 调查表移除 */
 function handleSurveyFormRemove() {
   form.value.attachSurveyFormUrl = ''
+  form.value.attachSurveyFormId = null
   surveyFormFileList.value = []
 }