Merge branch 'master' of http://47.99.164.66:3000/hzdyjs-xg/all-project
This commit is contained in:
commit
84d57c6906
22 files changed
+59
-689
No files matched your search
+1
-14
@@ -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
|
||||
}
|
||||
-146
@@ -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
|
||||
|
||||
-3
@@ -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)
|
||||
|
||||
-3
@@ -56,10 +56,7 @@ public class JcbtScholarshipCompatibility extends BaseEntity {
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
@TableField("tenant_id")
|
||||
=======
|
||||
>>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
|
||||
+6
-100
@@ -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
|
||||
}
|
||||
-3
@@ -118,12 +118,9 @@ public class JcbtScholarshipBatchBo extends BaseEntity {
|
||||
*/
|
||||
private List<Long> scholarshipTypeIds;
|
||||
|
||||
<<<<<<< HEAD
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private Long tenantId;
|
||||
|
||||
=======
|
||||
>>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
|
||||
}
|
||||
-3
@@ -60,12 +60,9 @@ public class JcbtScholarshipCompatibilityBo extends BaseEntity {
|
||||
@Size(max = 500, message = "关系描述长度不能超过500个字符")
|
||||
private String description;
|
||||
|
||||
<<<<<<< HEAD
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private Long tenantId;
|
||||
|
||||
=======
|
||||
>>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
|
||||
}
|
||||
-114
@@ -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
|
||||
|
||||
/**
|
||||
* 备注
|
||||
|
||||
-3
@@ -154,12 +154,9 @@ public class JcbtScholarshipBatchVo implements Serializable {
|
||||
*/
|
||||
private List<Long> scholarshipTypeIds;
|
||||
|
||||
<<<<<<< HEAD
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private Long tenantId;
|
||||
|
||||
=======
|
||||
>>>>>>> 4b9dbe40fb94a83d379f7d16211dec6d78c23755
|
||||
}
|
||||
-3
@@ -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
|
||||
}
|
||||
-14
@@ -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
|
||||
|
||||
-3
@@ -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
|
||||
}
|
||||
-7
@@ -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
|
||||
|
||||
-3
@@ -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
@@ -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
|
||||
}
|
||||
-8
@@ -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;
|
||||
|
||||
|
||||
-3
@@ -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
|
||||
}
|
||||
-3
@@ -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>
|
||||
-74
@@ -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>
|
||||
@@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 = []
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user