diff --git a/backend/pom.xml b/backend/pom.xml
index 2f24aa5d..fbd239de 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -394,7 +394,12 @@
ruoyi-aqbw
${revision}
-
+
+
+ org.dromara
+ ruoyi-xg-xx
+ ${revision}
+
diff --git a/backend/ruoyi-modules/ruoyi-hq/pom.xml b/backend/ruoyi-modules/ruoyi-hq/pom.xml
index 8a4df5ac..3c07544d 100644
--- a/backend/ruoyi-modules/ruoyi-hq/pom.xml
+++ b/backend/ruoyi-modules/ruoyi-hq/pom.xml
@@ -104,12 +104,6 @@
ruoyi-workflow
-
-
- org.dromara
- ruoyi-xg-xx
- ${revision}
-
diff --git a/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqPmRepairOrderServiceImpl.java b/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqPmRepairOrderServiceImpl.java
index aafef7a6..7acf5df7 100644
--- a/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqPmRepairOrderServiceImpl.java
+++ b/backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqPmRepairOrderServiceImpl.java
@@ -767,6 +767,9 @@ public class HqPmRepairOrderServiceImpl implements IHqPmRepairOrderService {
map.put("issuesEncountered", progress.getIssuesEncountered());
map.put("materialsNeeded", progress.getMaterialsNeeded());
map.put("remark", progress.getRemark());
+ // 新增:补充工单的使用材料和后续建议
+ map.put("usedMaterials", order.getUsedMaterials());
+ map.put("followSuggestions", order.getFollowSuggestions());
result.add(map);
}
diff --git a/backend/ruoyi-modules/ruoyi-xg-xx/pom.xml b/backend/ruoyi-modules/ruoyi-xg-xx/pom.xml
index fa2b914b..d26ced9e 100644
--- a/backend/ruoyi-modules/ruoyi-xg-xx/pom.xml
+++ b/backend/ruoyi-modules/ruoyi-xg-xx/pom.xml
@@ -9,7 +9,6 @@
4.0.0
ruoyi-xg-xx
- ${revision}
学工管理-学生信息管理模块
diff --git a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgAcademicYearController.java b/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgAcademicYearController.java
deleted file mode 100644
index 1433008a..00000000
--- a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgAcademicYearController.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.dromara.xg.controller;
-
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
-import lombok.RequiredArgsConstructor;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.xg.domain.bo.XgAcademicYearBo;
-import org.dromara.xg.domain.vo.XgAcademicYearVo;
-import org.dromara.xg.service.IXgAcademicYearService;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 学年管理Controller
- *
- * @author ruoyi
- * @date 2025-01-13
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/xg/academicYear")
-public class XgAcademicYearController extends BaseController {
-
- private final IXgAcademicYearService academicYearService;
-
- /**
- * 查询学年管理列表
- */
- @SaCheckPermission("xg:academicYear:list")
- @GetMapping("/list")
- public TableDataInfo list(XgAcademicYearBo bo, PageQuery pageQuery) {
- return academicYearService.queryPageList(bo, pageQuery);
- }
-
- /**
- * 导出学年管理列表
- */
- @SaCheckPermission("xg:academicYear:export")
- @Log(title = "学年管理", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(XgAcademicYearBo bo, HttpServletResponse response) {
- List list = academicYearService.queryList(bo);
- ExcelUtil.exportExcel(list, "学年管理", XgAcademicYearVo.class, response);
- }
-
- /**
- * 获取学年管理详细信息
- *
- * @param id 主键
- */
- @SaCheckPermission("xg:academicYear:query")
- @GetMapping("/{id}")
- public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
- return R.ok(academicYearService.queryById(id));
- }
-
- /**
- * 新增学年管理
- */
- @SaCheckPermission("xg:academicYear:add")
- @Log(title = "学年管理", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping()
- public R add(@Validated(AddGroup.class) @RequestBody XgAcademicYearBo bo) {
- return toAjax(academicYearService.insertByBo(bo));
- }
-
- /**
- * 修改学年管理
- */
- @SaCheckPermission("xg:academicYear:edit")
- @Log(title = "学年管理", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping()
- public R edit(@Validated(EditGroup.class) @RequestBody XgAcademicYearBo bo) {
- return toAjax(academicYearService.updateByBo(bo));
- }
-
- /**
- * 删除学年管理
- *
- * @param ids 主键串
- */
- @SaCheckPermission("xg:academicYear:remove")
- @Log(title = "学年管理", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
- return toAjax(academicYearService.deleteWithValidByIds(List.of(ids), true));
- }
-
- /**
- * 查询当前学年
- */
- @SaCheckPermission("xg:academicYear:query")
- @GetMapping("/current")
- public R getCurrentYear() {
- return R.ok(academicYearService.queryCurrentYear());
- }
-
- /**
- * 设置当前学年
- *
- * @param id 学年ID
- */
- @SaCheckPermission("xg:academicYear:edit")
- @Log(title = "设置当前学年", businessType = BusinessType.UPDATE)
- @PutMapping("/setCurrent/{id}")
- public R setCurrentYear(@NotNull(message = "学年ID不能为空") @PathVariable Long id) {
- return toAjax(academicYearService.setCurrentYear(id));
- }
-
- /**
- * 根据学年编码查询学年信息
- *
- * @param yearCode 学年编码
- */
- @SaCheckPermission("xg:academicYear:query")
- @GetMapping("/getByCode/{yearCode}")
- public R getByYearCode(@PathVariable String yearCode) {
- return R.ok(academicYearService.queryByYearCode(yearCode));
- }
-
- /**
- * 检查学年编码是否存在
- *
- * @param yearCode 学年编码
- * @param id 学年ID(修改时使用)
- */
- @GetMapping("/checkYearCode")
- public R checkYearCode(@RequestParam String yearCode, @RequestParam(required = false) Long id) {
- return R.ok(academicYearService.checkYearCodeExists(yearCode, id));
- }
-}
diff --git a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgBusinessPeriodController.java b/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgBusinessPeriodController.java
deleted file mode 100644
index 0519ecba..00000000
--- a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgBusinessPeriodController.java
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgClassCadreController.java b/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgClassCadreController.java
deleted file mode 100644
index 4a3b219a..00000000
--- a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgClassCadreController.java
+++ /dev/null
@@ -1,359 +0,0 @@
-package org.dromara.xg.controller;
-
-import java.util.List;
-import java.util.Date;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.common.excel.core.ExcelResult;
-import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.xg.domain.vo.XgClassCadreVo;
-import org.dromara.xg.domain.bo.XgClassCadreBo;
-import org.dromara.xg.service.IXgClassCadreService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * 班级干部信息管理Controller
- *
- * @author Cursor AI
- * @date 2025-01-09
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/xg/classCadre")
-public class XgClassCadreController extends BaseController {
-
- private final IXgClassCadreService xgClassCadreService;
-
- /**
- * 查询班级干部信息列表
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/list")
- public TableDataInfo list(XgClassCadreBo bo, PageQuery pageQuery) {
- return xgClassCadreService.queryPageList(bo, pageQuery);
- }
-
- /**
- * 导出班级干部信息列表
- */
- @SaCheckPermission("xg:classCadre:export")
- @Log(title = "班级干部信息", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(XgClassCadreBo bo, HttpServletResponse response) {
- List list = xgClassCadreService.exportCadreList(bo);
- ExcelUtil.exportExcel(list, "班级干部信息", XgClassCadreVo.class, response);
- }
-
- /**
- * 获取班级干部信息详细信息
- */
- @SaCheckPermission("xg:classCadre:query")
- @GetMapping("/{id}")
- public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
- return R.ok(xgClassCadreService.queryCadreWithDetails(id));
- }
-
- /**
- * 新增班级干部信息
- */
- @SaCheckPermission("xg:classCadre:add")
- @Log(title = "班级干部信息", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping()
- public R add(@Validated(AddGroup.class) @RequestBody XgClassCadreBo bo) {
- return toAjax(xgClassCadreService.insertByBo(bo));
- }
-
- /**
- * 修改班级干部信息
- */
- @SaCheckPermission("xg:classCadre:edit")
- @Log(title = "班级干部信息", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping()
- public R edit(@Validated(EditGroup.class) @RequestBody XgClassCadreBo bo) {
- return toAjax(xgClassCadreService.updateByBo(bo));
- }
-
- /**
- * 删除班级干部信息
- */
- @SaCheckPermission("xg:classCadre:remove")
- @Log(title = "班级干部信息", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
- return toAjax(xgClassCadreService.deleteWithValidByIds(List.of(ids), true));
- }
-
- // ==================== 业务功能接口 ====================
-
- /**
- * 根据班级ID查询班干部列表
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/class/{classId}")
- public R> getCadresByClass(@NotNull(message = "班级ID不能为空") @PathVariable Long classId) {
- return R.ok(xgClassCadreService.queryCadresByClassId(classId));
- }
-
- /**
- * 根据学生ID查询班干部信息
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/student/{studentId}")
- public R> getCadresByStudent(@NotNull(message = "学生ID不能为空") @PathVariable Long studentId) {
- return R.ok(xgClassCadreService.queryCadresByStudentId(studentId));
- }
-
- /**
- * 查询当前在任班干部列表
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/current")
- public R> getCurrentCadres(@RequestParam(required = false) Long classId) {
- return R.ok(xgClassCadreService.queryCurrentCadres(classId));
- }
-
- /**
- * 根据职务查询班干部
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/position")
- public R getCadreByPosition(
- @NotNull(message = "班级ID不能为空") @RequestParam Long classId,
- @NotBlank(message = "职务编码不能为空") @RequestParam String positionCode) {
- return R.ok(xgClassCadreService.queryCadreByPosition(classId, positionCode));
- }
-
- /**
- * 任命班干部
- */
- @SaCheckPermission("xg:classCadre:appoint")
- @Log(title = "任命班干部", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping("/appoint")
- public R appointCadre(@Validated(AddGroup.class) @RequestBody XgClassCadreBo bo) {
- return toAjax(xgClassCadreService.appointCadre(bo));
- }
-
- /**
- * 免职班干部
- */
- @SaCheckPermission("xg:classCadre:dismiss")
- @Log(title = "免职班干部", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping("/dismiss/{cadreId}")
- public R dismissCadre(
- @NotNull(message = "班干部ID不能为空") @PathVariable Long cadreId,
- @NotBlank(message = "免职原因不能为空") @RequestParam String dismissalReason,
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date dismissalDate) {
- return toAjax(xgClassCadreService.dismissCadre(cadreId, dismissalReason, dismissalDate));
- }
-
- /**
- * 调任班干部
- */
- @SaCheckPermission("xg:classCadre:transfer")
- @Log(title = "调任班干部", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping("/transfer/{cadreId}")
- public R transferCadre(
- @NotNull(message = "班干部ID不能为空") @PathVariable Long cadreId,
- @NotBlank(message = "新职务编码不能为空") @RequestParam String newPositionCode,
- @NotBlank(message = "新职务名称不能为空") @RequestParam String newPositionName,
- @NotBlank(message = "调任原因不能为空") @RequestParam String transferReason,
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date effectiveDate) {
- return toAjax(xgClassCadreService.transferCadre(cadreId, newPositionCode, newPositionName, transferReason, effectiveDate));
- }
-
- /**
- * 续任班干部
- */
- @SaCheckPermission("xg:classCadre:renew")
- @Log(title = "续任班干部", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping("/renew/{cadreId}")
- public R renewCadre(
- @NotNull(message = "班干部ID不能为空") @PathVariable Long cadreId,
- @NotNull(message = "新任期时长不能为空") @Min(value = 1, message = "新任期时长最少1个月") @Max(value = 48, message = "新任期时长最多48个月") @RequestParam Integer newTermDuration,
- @NotBlank(message = "续任原因不能为空") @RequestParam String renewalReason) {
- return toAjax(xgClassCadreService.renewCadre(cadreId, newTermDuration, renewalReason));
- }
-
- /**
- * 班干部辞职
- */
- @SaCheckPermission("xg:classCadre:resign")
- @Log(title = "班干部辞职", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping("/resign/{cadreId}")
- public R resignCadre(
- @NotNull(message = "班干部ID不能为空") @PathVariable Long cadreId,
- @NotBlank(message = "辞职原因不能为空") @RequestParam String resignationReason,
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date resignationDate) {
- return toAjax(xgClassCadreService.resignCadre(cadreId, resignationReason, resignationDate));
- }
-
- // ==================== 统计查询接口 ====================
-
- /**
- * 查询即将到期的班干部列表
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/expiring")
- public R> getExpiringCadres(@RequestParam(defaultValue = "30") Integer days) {
- return R.ok(xgClassCadreService.queryExpiringCadres(days));
- }
-
- /**
- * 查询已到期的班干部列表
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/expired")
- public R> getExpiredCadres() {
- return R.ok(xgClassCadreService.queryExpiredCadres());
- }
-
- /**
- * 根据学院查询班干部统计
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/college/{collegeName}")
- public R> getCadresByCollege(@NotBlank(message = "学院名称不能为空") @PathVariable String collegeName) {
- return R.ok(xgClassCadreService.queryCadresByCollege(collegeName));
- }
-
- /**
- * 根据年级查询班干部统计
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/grade/{grade}")
- public R> getCadresByGrade(@NotBlank(message = "年级不能为空") @PathVariable String grade) {
- return R.ok(xgClassCadreService.queryCadresByGrade(grade));
- }
-
- /**
- * 查询班干部任期统计
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/term-statistics")
- public R> getCadreTermStatistics(
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
- return R.ok(xgClassCadreService.queryCadreTermStatistics(startDate, endDate));
- }
-
- /**
- * 根据职务级别查询班干部
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/level/{positionLevel}")
- public R> getCadresByLevel(@NotNull(message = "职务级别不能为空") @PathVariable Integer positionLevel) {
- return R.ok(xgClassCadreService.queryCadresByPositionLevel(positionLevel));
- }
-
- /**
- * 查询班干部工作表现统计
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/performance/{performance}")
- public R> getCadresByPerformance(@NotBlank(message = "工作表现不能为空") @PathVariable String performance) {
- return R.ok(xgClassCadreService.queryCadresByPerformance(performance));
- }
-
- // ==================== 辅助功能接口 ====================
-
- /**
- * 检查职务是否已被占用
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/check-position")
- public R checkPositionOccupied(
- @NotNull(message = "班级ID不能为空") @RequestParam Long classId,
- @NotBlank(message = "职务编码不能为空") @RequestParam String positionCode,
- @RequestParam(required = false) Long excludeId) {
- return R.ok(xgClassCadreService.checkPositionOccupied(classId, positionCode, excludeId));
- }
-
- /**
- * 检查学生是否已有其他职务
- */
- @SaCheckPermission("xg:classCadre:list")
- @GetMapping("/check-student")
- public R checkStudentHasOtherPosition(
- @NotNull(message = "学生ID不能为空") @RequestParam Long studentId,
- @RequestParam(required = false) Long excludeId) {
- return R.ok(xgClassCadreService.checkStudentHasOtherPosition(studentId, excludeId));
- }
-
- /**
- * 批量更新班干部状态
- */
- @SaCheckPermission("xg:classCadre:edit")
- @Log(title = "批量更新班干部状态", businessType = BusinessType.UPDATE)
- @PutMapping("/batch-status")
- public R batchUpdateStatus(
- @NotEmpty(message = "班干部ID列表不能为空") @RequestParam List cadreIds,
- @NotBlank(message = "状态不能为空") @RequestParam String status) {
- return toAjax(xgClassCadreService.batchUpdateCadreStatus(cadreIds, status));
- }
-
- /**
- * 自动处理到期班干部
- */
- @SaCheckPermission("xg:classCadre:process")
- @Log(title = "自动处理到期班干部", businessType = BusinessType.UPDATE)
- @PostMapping("/auto-process-expired")
- public R autoProcessExpired() {
- return toAjax(xgClassCadreService.autoProcessExpiredCadres());
- }
-
- /**
- * 发送到期提醒通知
- */
- @SaCheckPermission("xg:classCadre:notify")
- @Log(title = "发送到期提醒通知", businessType = BusinessType.OTHER)
- @PostMapping("/send-reminder")
- public R sendReminder(@RequestParam(defaultValue = "30") Integer days) {
- return toAjax(xgClassCadreService.sendExpirationReminder(days));
- }
-
- /**
- * 导入班干部信息
- */
- @SaCheckPermission("xg:classCadre:import")
- @Log(title = "班级干部信息", businessType = BusinessType.IMPORT)
- @PostMapping("/import")
- public R importData(MultipartFile file, boolean updateSupport) throws Exception {
- ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), XgClassCadreVo.class, true);
- List cadreList = result.getList();
- String operName = LoginHelper.getUsername();
- String message = xgClassCadreService.importCadreList(cadreList, updateSupport, operName);
- return R.ok(message);
- }
-
- /**
- * 获取导入模板
- */
- @PostMapping("/import-template")
- public void importTemplate(HttpServletResponse response) {
- ExcelUtil.exportExcel(List.of(), "班级干部信息", XgClassCadreVo.class, response);
- }
-}
diff --git a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgClassInfoController.java b/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgClassInfoController.java
deleted file mode 100644
index 98f03b80..00000000
--- a/backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgClassInfoController.java
+++ /dev/null
@@ -1,205 +0,0 @@
-package org.dromara.xg.controller;
-
-import java.util.List;
-import java.util.Map;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.xg.domain.vo.XgClassInfoVo;
-import org.dromara.xg.domain.bo.XgClassInfoBo;
-import org.dromara.xg.service.IXgClassInfoService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-/**
- * 班级信息Controller
- *
- * @author Cursor AI
- * @date 2025-01-12
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/xg/classInfo")
-public class XgClassInfoController extends BaseController {
-
- private final IXgClassInfoService classInfoService;
-
- /**
- * 查询班级信息列表
- */
- @SaCheckPermission("xg:classInfo:list")
- @GetMapping("/list")
- public TableDataInfo list(XgClassInfoBo bo, PageQuery pageQuery) {
- return classInfoService.queryPageList(bo, pageQuery);
- }
-
- /**
- * 导出班级信息列表
- */
- @SaCheckPermission("xg:classInfo:export")
- @Log(title = "班级信息", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(XgClassInfoBo bo, HttpServletResponse response) {
- List list = classInfoService.queryList(bo);
- ExcelUtil.exportExcel(list, "班级信息", XgClassInfoVo.class, response);
- }
-
- /**
- * 获取班级选项列表(用于下拉框)
- */
- @SaCheckPermission("xg:classInfo:list")
- @GetMapping("/options")
- public R>> getClassOptions() {
- return R.ok(classInfoService.queryClassOptions());
- }
-
- /**
- * 获取辅导员选项列表(用于下拉框)
- */
- @SaCheckPermission("xg:classInfo:list")
- @GetMapping("/counselorOptions")
- public R>> getCounselorOptions(@RequestParam(required = false) String collegeCode) {
- return R.ok(classInfoService.queryCounselorOptions(collegeCode));
- }
-
- /**
- * 获取班主任选项列表(用于下拉框)
- */
- @SaCheckPermission("xg:classInfo:list")
- @GetMapping("/classTeacherOptions")
- public R>> getClassTeacherOptions(@RequestParam(required = false) String collegeCode) {
- return R.ok(classInfoService.queryClassTeacherOptions(collegeCode));
- }
-
- /**
- * 获取班级信息总体统计
- */
- @SaCheckPermission("xg:classInfo:list")
- @GetMapping("/statistics")
- public R