refactor: 根包由 com.bestsch.bschclassmanage 重命名为 com.yunhai.bschclassmanage

- git mv src/main/java/com/bestsch/bschclassmanage -> src/main/java/com/yunhai/bschclassmanage
- 255 个 Java 文件的 package/import 同步替换为 com.yunhai.bschclassmanage
- pom.xml 项目 groupId 设为 com.yunhai(与外部依赖 com.bestsch:bsch-* 无关,未改动)
- IDE 缓存 workspace.xml 路径同步更新(外部依赖坐标 com.bestsch:bsch-* 保持不动)
This commit is contained in:
Allen
2026-08-12 17:21:22 +08:00
parent 66cd0f1515
commit dc217ca7a9
258 changed files with 1082 additions and 1067 deletions
@@ -0,0 +1,19 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
public class AcademicStageSchsystemVO {
private Integer academicStageId;
private String academicStageName;
private List<SchSystemVO> academicStageList;
}
@@ -0,0 +1,55 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.Builder;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
public class BaseSchClassVO {
private Integer id;
private String code;
private Integer gradeId;
private String gradeName;
private Integer groupId;
private String groupName;
private Integer classId;
@NotBlank(message = "名称不能为空")
@Size(max = 255, message = "名称长度不能超过255")
private String name;
@Size(max = 255, message = "别称长度不能超过255")
private String cname;
private Integer firstTeacherId;
private String firstTeacherName;
private Integer secondTeacherId;
private String secondTeacherName;
private Integer campusId;
private String campusName;
private Boolean graduate;
private Boolean disableDel;
private Integer enrollYear;
}
@@ -0,0 +1,63 @@
package com.yunhai.bschclassmanage.model.vo;
import com.yunhai.bschclassmanage.entity.BaseYearTerm;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Calendar;
import java.util.Date;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
public class BaseYearTermVO {
private Integer id;
private Integer year;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date yearStartDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date yearEndDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date firstTermStartDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date firstTermEndDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date secondTermStartDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date secondTermEndDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date upgradeDate;
private Boolean nowYear;
// 带参构造:接收实体和当前学年ID,直接完成赋值
public static BaseYearTermVO of(BaseYearTerm entity, Integer nowId) {
if (entity == null) return null;
BaseYearTermVO vo = new BaseYearTermVO();
vo.setId(entity.getId());
vo.setYear(entity.getYear());
vo.setYearStartDate(entity.getYearStartDate());
vo.setYearEndDate(entity.getYearEndDate());
vo.setFirstTermStartDate(entity.getFirstTermStartDate());
vo.setFirstTermEndDate(entity.getFirstTermEndDate());
vo.setSecondTermStartDate(entity.getSecondTermStartDate());
vo.setSecondTermEndDate(entity.getSecondTermEndDate());
vo.setUpgradeDate(entity.getUpgradeDate());
vo.setNowYear(nowId != null && nowId.equals(entity.getId()));
return vo;
}
}
@@ -0,0 +1,20 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.Data;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
public class HigherSchClassVO extends BaseSchClassVO {
private Integer divisionId;
private String divisionName;
private Integer majorsId;
private String majorsName;
}
@@ -0,0 +1,44 @@
package com.yunhai.bschclassmanage.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
public class HistorySchClassVO {
private Integer id;
private Integer gradeId;
private String gradeName;
private Integer classId;
private String name;
private String cname;
private Integer campusId;
private String campusName;
private Boolean graduate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date CreateDate;
private Integer majorsId;
private String majorsName;
private Integer schType;
}
@@ -0,0 +1,108 @@
package com.yunhai.bschclassmanage.model.vo;
import org.springframework.data.domain.Page;
import java.util.Collections;
import java.util.List;
/**
* 统一分页响应对象
* @param <T> 数据类型
*/
public class PageVO<T> {
private int current; // 当前页码(从1开始)
private int pageSize; // 每页大小
private long total; // 总记录数
private List<T> content; // 当前页数据
// ========== 构造方法 ==========
public PageVO() {
// 默认构造,用于反序列化
}
public PageVO(int current, int pageSize, long total, List<T> content) {
this.current = current;
this.pageSize = pageSize;
this.total = total;
this.content = content != null ? content : Collections.emptyList();
}
// ========== 静态工厂方法 ==========
/**
* 从 Spring Data Page 转换
*/
public static <T> PageVO<T> from(Page<T> page) {
return new PageVO<>(page.getNumber() + 1, page.getSize(), page.getTotalElements(), page.getContent());
}
/**
* 创建空分页结果
*/
public static <T> PageVO<T> empty(int pageSize) {
return new PageVO<>(1, pageSize, 0, Collections.emptyList());
}
// ========== getter / setter ==========
public int getCurrent() {
return current;
}
public void setCurrent(int current) {
this.current = current;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<T> getContent() {
return content;
}
public void setContent(List<T> content) {
this.content = content;
}
// ========== 辅助计算方法 ==========
/**
* 总页数
*/
public int getTotalPages() {
if (pageSize <= 0) {
return 0;
}
return (int) Math.ceil((double) total / pageSize);
}
/**
* 是否有上一页
*/
public boolean hasPrevious() {
return current > 1;
}
/**
* 是否有下一页
*/
public boolean hasNext() {
return current < getTotalPages();
}
/**
* 分页偏移量(用于SQL查询)
*/
public int getOffset() {
return (current - 1) * pageSize;
}
}
@@ -0,0 +1,26 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchCustomGroupVO {
private Integer cgId; // 组id
private String cgName; // 组名称
private List<Integer> gradeIds;
private List<String> subjectIds;
private List<SelectIntVO> cgLeader;
private List<SelectIntVO> cgMember;
}
@@ -0,0 +1,29 @@
package com.yunhai.bschclassmanage.model.vo;
import com.yunhai.bschclassmanage.entity.SchDicDivision;
import com.yunhai.bschclassmanage.entity.SchDicMajors;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
public class SchDicCourseVO {
private Integer id;
private String name;
private String nickname;
private String code;
private List<SchDicMajors> majorsList;
private List<SchDicDivision> divisionList;
private Integer type;
private String typeName;
}
@@ -0,0 +1,75 @@
package com.yunhai.bschclassmanage.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.Date;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchStudentVO {
private Integer id;
private Integer stuId;
@NotBlank(message = "账号不能为空")
@Size(max = 255, message = "账号长度不能超过255")
private String account;
@NotBlank(message = "名称不能为空")
@Size(max = 255, message = "名称长度不能超过255")
private String name;
private Integer gender;
@Pattern(regexp = "^$|^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]$",
message = "身份证号码格式不正确(若填写必须为18位有效格式)")
private String idCard;
private Integer groupId;
private String stuClassNo;
private Integer gradeId;
private String gradeName;
private Integer classId;
private String className;
private Integer status;
private String statusName;
private Integer abnormalStatus;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date abnormalDate;
private String abnormalStatusName;
private String invitationCode;
private Integer sort;
private Integer schId;
private String schName;
}
@@ -0,0 +1,40 @@
package com.yunhai.bschclassmanage.model.vo;
import com.yunhai.bschclassmanage.enums.NodeType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchSystemTreeVO {
// ========== 通用字段 ==========
private Integer id; // 当前节点主键(学制ID/年级ID/班级ID)
private String name; // 节点显示名称
private Integer sort; // 排序序号(同层级排序)
private NodeType type; // 节点类型:SCHOOL, SYSTEM, GRADE, CLASS
private List<SchSystemTreeVO> children; // 子节点列表
// ========== 层级特定 ID(可选,便于前端直接获取) ==========
private Integer schsystemId; // 所属学制ID(仅年级/班级节点有效)
private Integer gradeId; // 所属年级ID(仅班级节点有效)
private Integer classId; // 班级ID(仅班级节点有效)
// ========== 学校节点特有字段 ==========
private Integer educationType; // 教育类型(仅学校节点有效)
// ========== 年级节点特有字段 ==========
private Integer enrollYear; // 入学年份(仅年级/班级节点有效,班级可继承年级的入学年份)
private Integer graduation; // 0-未毕业,1-已毕业(仅年级节点有效)
private boolean expand=false;
}
@@ -0,0 +1,22 @@
package com.yunhai.bschclassmanage.model.vo;
import com.fasterxml.jackson.annotation.JsonView;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchSystemVO {
private Integer id; // 学制id
private String name; // 学制名称
private Boolean checked; // 是否选中(前端勾选状态)
}
@@ -0,0 +1,27 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchTeachClassMapVO {
private Integer gradeId;
private Integer classId;
private List<SchTeachMapIdVO> teachSubjectList;
}
@@ -0,0 +1,31 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchTeachMapIdVO {
private Integer id;
private String subId;
private String subName;
private Integer teacherId;
private String teacherName;
}
@@ -0,0 +1,27 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchTeachMapVO {
private List<SelectStrVO> subjectList;
private List<SelectGradeClassVO> classList;
private List<SchTeachClassMapVO> teachList;
}
@@ -0,0 +1,30 @@
package com.yunhai.bschclassmanage.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchTeacherTOutVO {
private Integer teaId;
private String name;
private String idCard;
private String groupNames;
private Integer schId;
private String schName;
}
@@ -0,0 +1,73 @@
package com.yunhai.bschclassmanage.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchTeacherVO {
private Integer id;
private Integer teaId;
/**
* 教师账户
*/
@Size(max = 255, message = "教师账户长度不能超过255")
private String account;
/**
* 教师姓名
*/
@Size(max = 255, message = "教师姓名长度不能超过255")
private String name;
/**
* 组id name
*/
private List<SelectIntVO> groupList;
/**
* 性别(0未知 1男 2女等,根据业务定义)
*/
private Integer gender;
@Pattern(regexp = "^$|^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]$",
message = "身份证号码格式不正确(若填写必须为18位有效格式)")
private String idCard;
/**
* 联系电话
*/
@Size(max = 255, message = "联系电话长度不能超过255")
private String tel;
/**
* 状态(0禁用 1正常)
*/
private int status;
private String statusName;
private Integer sort;
}
@@ -0,0 +1,22 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SelectGradeClassVO {
private Integer gradeId;
private String gradeName;
private Integer classId;
private String name;
}
@@ -0,0 +1,37 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SelectIntVO {
private Integer id; // id
private String name; //名称
public static Map<Integer, String> toMap(List<SelectIntVO> list) {
if (list == null || list.isEmpty()) {
return java.util.Collections.emptyMap();
}
return list.stream()
.filter(vo -> vo != null && vo.getId() != null && vo.getName() != null)
.collect(Collectors.toMap(
SelectIntVO::getId,
SelectIntVO::getName,
(oldVal, newVal) -> oldVal // 如果有重复 key,保留第一个
));
}
}
@@ -0,0 +1,20 @@
package com.yunhai.bschclassmanage.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SelectStrVO {
private String id; // id
private String name; //名称
}
@@ -0,0 +1,15 @@
package com.yunhai.bschclassmanage.model.vo;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
public interface TeacherSchVO {
Integer getTeaId();
String getTeaName();
Integer getSchId();
Integer getIdCard();
}
@@ -0,0 +1,29 @@
package com.yunhai.bschclassmanage.model.vo.oa;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchInfoVO {
@JsonProperty("SchSerId")
private String schSerId;
@JsonProperty("UserSchSerId")
private Integer userSchSerId;
@JsonProperty("SchName")
private String schName;
}