Преглед на файлове

/room/roomBedCheckRecord/echo 查寝记录回显

phoenix преди 1 година
родител
ревизия
49d44ca31c

+ 8 - 0
src/main/java/com/xjrsoft/module/room/controller/RoomBedCheckRecordController.java

@@ -13,6 +13,7 @@ import com.xjrsoft.module.room.dto.RoomBedCheckRecordPageDto;
 import com.xjrsoft.module.room.dto.UpdateRoomBedCheckRecordDto;
 import com.xjrsoft.module.room.entity.RoomBedCheckRecord;
 import com.xjrsoft.module.room.service.IRoomBedCheckRecordService;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordEchoVo;
 import com.xjrsoft.module.room.vo.RoomBedCheckRecordPageVo;
 import com.xjrsoft.module.room.vo.RoomBedCheckRecordVo;
 import io.swagger.annotations.Api;
@@ -62,6 +63,13 @@ public class RoomBedCheckRecordController {
         return RT.ok(roomBedCheckRecordVo);
     }
 
+    @GetMapping(value = "/echo")
+    @ApiOperation(value="查寝记录回显")
+    @SaCheckPermission("roombedcheckrecord:detail")
+    public RT<RoomBedCheckRecordEchoVo> echo(){
+        RoomBedCheckRecordEchoVo roomBedCheckRecordEchoVo = roomBedCheckRecordService.getEcho();
+        return RT.ok(roomBedCheckRecordEchoVo);
+    }
 
     @PostMapping
     @ApiOperation(value = "新增查寝记录")

+ 3 - 0
src/main/java/com/xjrsoft/module/room/service/IRoomBedCheckRecordService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.room.dto.RoomBedCheckRecordPageDto;
 import com.xjrsoft.module.room.entity.RoomBedCheckRecord;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordEchoVo;
 import com.xjrsoft.module.room.vo.RoomBedCheckRecordPageVo;
 import com.xjrsoft.module.room.vo.RoomBedCheckRecordVo;
 
@@ -49,4 +50,6 @@ public interface IRoomBedCheckRecordService extends MPJBaseService<RoomBedCheckR
     IPage<RoomBedCheckRecordPageVo> getPage(RoomBedCheckRecordPageDto dto);
 
     RoomBedCheckRecordVo getInfo(Long id);
+
+    RoomBedCheckRecordEchoVo getEcho();
 }

+ 70 - 6
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedCheckRecordServiceImpl.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.room.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -10,24 +11,25 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseOfficeBuild;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.room.dto.RoomBedCheckRecordPageDto;
-import com.xjrsoft.module.room.entity.Room;
-import com.xjrsoft.module.room.entity.RoomBedCheckRecord;
-import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+import com.xjrsoft.module.room.entity.*;
 import com.xjrsoft.module.room.mapper.RoomBedCheckRecordMapper;
 import com.xjrsoft.module.room.mapper.RoomBedCheckRecordRelationMapper;
 import com.xjrsoft.module.room.mapper.RoomMapper;
 import com.xjrsoft.module.room.service.IRoomBedCheckRecordService;
-import com.xjrsoft.module.room.vo.RoomBedCheckRecordPageVo;
-import com.xjrsoft.module.room.vo.RoomBedCheckRecordRelationVo;
-import com.xjrsoft.module.room.vo.RoomBedCheckRecordVo;
+import com.xjrsoft.module.room.vo.*;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.system.service.IFileService;
 import com.xjrsoft.module.teacher.entity.XjrUser;
+import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -49,6 +51,10 @@ public class RoomBedCheckRecordServiceImpl extends MPJBaseServiceImpl<RoomBedChe
 
     private final RoomMapper roomMapper;
 
+    private final XjrUserMapper xjrUserMapper;
+
+    private final BaseClassMapper baseClassMapper;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -165,4 +171,62 @@ public class RoomBedCheckRecordServiceImpl extends MPJBaseServiceImpl<RoomBedChe
 
         return roomBedCheckRecordVo;
     }
+
+    @Override
+    public RoomBedCheckRecordEchoVo getEcho() {
+        //获取当前用户信息
+        XjrUser xjrUser = xjrUserMapper.selectById(StpUtil.getLoginIdAsLong());
+        RoomBedCheckRecordEchoVo roomBedCheckRecordEchoVo = new RoomBedCheckRecordEchoVo();
+        roomBedCheckRecordEchoVo.setUserId(xjrUser.getId());
+        roomBedCheckRecordEchoVo.setUserName(xjrUser.getName());
+
+        //根据用户id获取其所管理的班级
+        LambdaQueryWrapper<BaseClass> queryWrapperClass = new LambdaQueryWrapper<>();
+        queryWrapperClass
+                .eq(BaseClass::getTeacherId,xjrUser.getId());
+        List<BaseClass> baseClassList = baseClassMapper.selectList(queryWrapperClass);
+        List<BaseClass> classList = new ArrayList<>();
+        List<Long> classIdList = new ArrayList<>();
+        for (BaseClass baseClass : baseClassList) {
+            classList.add(new BaseClass(){{
+                setId(baseClass.getId());
+                setName(baseClass.getName());
+            }});
+            classIdList.add(baseClass.getId());
+        }
+        roomBedCheckRecordEchoVo.setClassList(classList);
+
+        //获取用户管理的寝室
+        //根据班级
+        List<RoomEchoVo> roomEchoVoByClassList = new ArrayList<>();
+        if(classIdList != null && classIdList.size() > 0){
+            MPJLambdaWrapper<Room> queryRoomByClass = new MPJLambdaWrapper<>();
+            queryRoomByClass
+                    .selectAs(Room::getId, RoomEchoVo::getRoomId)
+                    .selectAs(Room::getRoomName, RoomEchoVo::getRoomName)
+                    .leftJoin(RoomBed.class, RoomBed::getRoomId, Room::getId)
+                    .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, RoomBed::getStudentUserId)
+                    .leftJoin(BaseOfficeBuild.class, BaseOfficeBuild::getId, Room::getOfficeBuildId)
+                    .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, Room::getGender)
+                    .in(BaseStudentSchoolRoll::getClassId, classIdList);
+            roomEchoVoByClassList = roomMapper.selectJoinList(RoomEchoVo.class, queryRoomByClass);
+        }
+
+        //根据宿管任命
+        MPJLambdaWrapper<Room> queryRoomByTeacherAppoint = new MPJLambdaWrapper<>();
+        queryRoomByTeacherAppoint
+                .selectAs(Room::getId, RoomEchoVo::getRoomId)
+                .selectAs(Room::getRoomName, RoomEchoVo::getRoomName)
+                .leftJoin(RoomTeacherAppoint.class, RoomTeacherAppoint::getRoomId, Room::getId)
+                .eq(RoomTeacherAppoint::getUserId, StpUtil.getLoginIdAsLong());
+        List<RoomEchoVo> roomEchoVoByTeacherAppointList = roomMapper.selectJoinList(RoomEchoVo.class, queryRoomByTeacherAppoint);
+
+        List<RoomEchoVo> roomEchoVoList = new ArrayList<>();
+        roomEchoVoList.addAll(roomEchoVoByClassList);
+        roomEchoVoList.addAll(roomEchoVoByTeacherAppointList);
+
+        roomBedCheckRecordEchoVo.setRoomEchoVoList(roomEchoVoList);
+
+        return roomBedCheckRecordEchoVo;
+    }
 }

+ 48 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordEchoVo.java

@@ -0,0 +1,48 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.xjrsoft.module.base.entity.BaseClass;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 查寝记录表单回显出参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomBedCheckRecordEchoVo {
+
+    /**
+     * 填写人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("用户id")
+    @ApiModelProperty("用户id")
+    private Long userId;
+    /**
+     * 填写人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("用户名")
+    @ApiModelProperty("用户名")
+    private String userName;
+    /**
+     * 班级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级")
+    @ApiModelProperty("班级")
+    private List<BaseClass> classList;
+
+    /**
+    * 寝室
+    */
+    @ApiModelProperty("寝室")
+    private List<RoomEchoVo> roomEchoVoList;
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomEchoVo.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 查寝记录表单回显寝室出参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomEchoVo {
+
+    /**
+     * 寝室名
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室id")
+    @ApiModelProperty("寝室id")
+    private Long roomId;
+
+    /**
+     * 寝室名
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室名")
+    @ApiModelProperty("寝室名")
+    private String roomName;
+}