Преглед изворни кода

feat(class): 新增查询完整班级树接口

- 在ClassController新增fullNavTree接口,支持查询包含班级叶子的完整班级树
- 远程服务接口RemoteDeptService及其实现RemoteDeptServiceImpl添加selectAllClassNavTree方法
- SysDeptService及实现类SysDeptServiceImpl新增selectAllClassNavTree方法,支持返回deptType分别为01、04、05的节点完整树
- 为EcsSectionBo中日期字段添加Spring格式化注解@DateTimeFormat以支持日期范围查询
- SyncReceiveController中移除syncSections接口的@HmacSignatureAuth注解
- TraineeBusiness恢复发送短信及发送Kafka消息的逻辑,取消调试时注释内容,完成正式环境功能开启
autumnal_wind пре 1 недеља
родитељ
комит
37de25d174

+ 7 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java

@@ -135,6 +135,13 @@ public interface RemoteDeptService {
      */
     List<Tree<Long>> selectClassNavTree();
 
+    /**
+     * 查询完整班级树(包含培训学校、学年/期、班级叶子)
+     *
+     * @return 班级树
+     */
+    List<Tree<Long>> selectAllClassNavTree();
+
     /**
      * 按祖先节点分页查询班级列表
      *

+ 3 - 6
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/TraineeBusiness.java

@@ -200,12 +200,10 @@ public class TraineeBusiness {
             String cardData = getRoomCardData(kfOrderVo);
             ycTraineeVo.setRoomCardData(cardData);
             // 发送报到短信(有房间)
-            // TODO [2026/4/28][luoyibo][P0-当日内完成]: 因调试需要被注释,需要在正式环境中打开
-            // selfBusiness.sendSmsHasRoom(ycTraineeVo.getMobilePhone(), ycTraineeVo.getUserXm(), remoteDeptVo.getDeptName(), roomCode);
+             selfBusiness.sendSmsHasRoom(ycTraineeVo.getMobilePhone(), ycTraineeVo.getUserXm(), remoteDeptVo.getDeptName(), roomCode);
         } else {
             // 发送短信,暂无房间
-            // TODO [2026/4/28][luoyibo][P0-当日内完成]: 因调试需要被注释,需要在正式环境中打开
-            // selfBusiness.sendSmsNoRoom(ycTraineeVo.getMobilePhone(), ycTraineeVo.getUserXm(), remoteDeptVo.getDeptName());
+             selfBusiness.sendSmsNoRoom(ycTraineeVo.getMobilePhone(), ycTraineeVo.getUserXm(), remoteDeptVo.getDeptName());
         }
         setCheckInfoStatus(bo, ycTraineeVo);
         // 培训班级信息
@@ -216,8 +214,7 @@ public class TraineeBusiness {
         BeanUtil.copyProperties(ycTraineeVo, traineeVo);
 
         // 发送报到的kafka消息
-        // TODO [2026/4/28][luoyibo][P0-当日内完成]: 因调试需要被注释,需要在正式环境中打开
-        // sendCheckInMessageToKafka(bo);
+         sendCheckInMessageToKafka(bo);
         //写发卡记录表
         //insertCardData(ycTraineeVo);
         return R.ok();

+ 9 - 0
ruoyi-modules/ruoyi-ecs/src/main/java/org/dromara/ecs/controller/ClassController.java

@@ -36,6 +36,15 @@ public class ClassController extends BaseController {
         return R.ok(remoteDeptService.selectClassNavTree());
     }
 
+    /**
+     * 查询完整班级树(含班级叶子)
+     */
+    @SaCheckPermission("ecs:class:list")
+    @GetMapping("/full-nav-tree")
+    public R<List<Tree<Long>>> fullNavTree() {
+        return R.ok(remoteDeptService.selectAllClassNavTree());
+    }
+
     /**
      * 查询班级信息列表(分页)
      */

+ 7 - 3
ruoyi-modules/ruoyi-ecs/src/main/java/org/dromara/ecs/domain/bo/EcsSectionBo.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.dromara.common.tenant.core.TenantEntity;
 import org.dromara.ecs.domain.EcsSection;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -65,18 +66,21 @@ public class EcsSectionBo extends TenantEntity {
     private Integer semester;
 
     /**
-     * 上课日期(查询时支持范围)
+     * 上课日期(查询时支持范围)
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date courseDate;
-
+    
     /**
      * 上课日期范围-起
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date courseDateBegin;
-
+    
     /**
      * 上课日期范围-止
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date courseDateEnd;
 
     /**

+ 10 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java

@@ -251,6 +251,16 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
         return sysDeptService.selectClassNavTree();
     }
 
+    /**
+     * 查询完整班级树(包含培训学校、学年/期、班级叶子)
+     *
+     * @return 班级树
+     */
+    @Override
+    public List<Tree<Long>> selectAllClassNavTree() {
+        return sysDeptService.selectAllClassNavTree();
+    }
+
     /**
      * 按祖先节点分页查询班级列表
      *

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java

@@ -220,6 +220,14 @@ public interface ISysDeptService {
      */
     List<Tree<Long>> selectClassNavTree();
 
+    /**
+     * 查询完整班级树(含班级叶子)
+     * 返回 deptType 01+04+05 三类节点构成的完整树
+     *
+     * @return 班级树
+     */
+    List<Tree<Long>> selectAllClassNavTree();
+
     /**
      * 按祖先节点分页查询班级列表
      *

+ 18 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

@@ -517,6 +517,24 @@ public class SysDeptServiceImpl implements ISysDeptService {
         return buildDeptTreeSelect(depts);
     }
 
+    /**
+     * 查询完整班级树(含班级叶子)
+     * 返回 deptType 01+04+05 三类节点构成的完整树
+     *
+     * @return 班级树
+     */
+    @Override
+    public List<Tree<Long>> selectAllClassNavTree() {
+        LambdaQueryWrapper<SysDept> lqw = Wrappers.lambdaQuery();
+        lqw.eq(SysDept::getDelFlag, "0");
+        lqw.eq(SysDept::getStatus, UserConstants.DEPT_NORMAL);
+        lqw.in(SysDept::getDeptType, "01", "04", "05");
+        lqw.orderByAsc(SysDept::getAncestors);
+        lqw.orderByAsc(SysDept::getOrderNum);
+        List<SysDeptVo> depts = baseMapper.selectVoList(lqw);
+        return buildDeptTreeSelect(depts);
+    }
+
     /**
      * 按祖先节点分页查询班级列表
      * 查询指定节点下所有 deptType=05 的班级(利用 ancestors LIKE 匹配)

+ 0 - 1
ruoyi-server/ruoyi-server-sync/src/main/java/org/dromara/server/sync/controller/SyncReceiveController.java

@@ -123,7 +123,6 @@ public class SyncReceiveController {
      * @return 同步结果
      */
     @PostMapping("/sections")
-    @HmacSignatureAuth
     public R<BatchSyncResult> syncSections(@RequestBody BatchSyncRequest<SectionRecordRequest> request) {
         if (request != null) {
             request.setBusinessType(SyncResourceConstants.SECTION);