فهرست منبع

Merge remote-tracking branch 'origin/dev' into dev

fanxp 1 سال پیش
والد
کامیت
6bd31a286b
71فایلهای تغییر یافته به همراه2116 افزوده شده و 289 حذف شده
  1. 1 1
      src/main/java/com/xjrsoft/module/oa/controller/NewsController.java
  2. 2 2
      src/main/java/com/xjrsoft/module/oa/dto/AddNewsRelationDto.java
  3. 1 1
      src/main/java/com/xjrsoft/module/oa/service/INewsService.java
  4. 2 2
      src/main/java/com/xjrsoft/module/oa/service/impl/NewsServiceImpl.java
  5. 0 11
      src/main/java/com/xjrsoft/module/room/controller/DistributeRoomBedController.java
  6. 30 22
      src/main/java/com/xjrsoft/module/room/controller/RoomBedAdjustController.java
  7. 101 0
      src/main/java/com/xjrsoft/module/room/controller/RoomBedCheckRecordController.java
  8. 0 1
      src/main/java/com/xjrsoft/module/room/controller/RoomBedController.java
  9. 101 0
      src/main/java/com/xjrsoft/module/room/controller/RoomRuleController.java
  10. 8 1
      src/main/java/com/xjrsoft/module/room/controller/RoomStudentAppointController.java
  11. 23 19
      src/main/java/com/xjrsoft/module/room/controller/WfRoomStayOvernightController.java
  12. 69 0
      src/main/java/com/xjrsoft/module/room/dto/AddRoomBedCheckRecordDto.java
  13. 58 0
      src/main/java/com/xjrsoft/module/room/dto/AddRoomBedCheckRecordRelationDto.java
  14. 1 7
      src/main/java/com/xjrsoft/module/room/dto/AddRoomDto.java
  15. 37 0
      src/main/java/com/xjrsoft/module/room/dto/AddRoomRuleDto.java
  16. 32 0
      src/main/java/com/xjrsoft/module/room/dto/AddRoomRuleItemDto.java
  17. 1 7
      src/main/java/com/xjrsoft/module/room/dto/AddRoomStudentAppointDto.java
  18. 15 3
      src/main/java/com/xjrsoft/module/room/dto/AdjustBedPageDto.java
  19. 9 0
      src/main/java/com/xjrsoft/module/room/dto/AdjustClassPageDto.java
  20. 25 0
      src/main/java/com/xjrsoft/module/room/dto/AdjustStudentBedDto.java
  21. 18 0
      src/main/java/com/xjrsoft/module/room/dto/RoomBedCheckRecordPageDto.java
  22. 0 6
      src/main/java/com/xjrsoft/module/room/dto/RoomBedPageDto.java
  23. 0 6
      src/main/java/com/xjrsoft/module/room/dto/RoomPageDto.java
  24. 19 0
      src/main/java/com/xjrsoft/module/room/dto/RoomRulePageDto.java
  25. 0 6
      src/main/java/com/xjrsoft/module/room/dto/RoomTeacherAppointPageDto.java
  26. 33 0
      src/main/java/com/xjrsoft/module/room/dto/UpdateRoomBedCheckRecordDto.java
  27. 0 8
      src/main/java/com/xjrsoft/module/room/dto/UpdateRoomBedDto.java
  28. 0 8
      src/main/java/com/xjrsoft/module/room/dto/UpdateRoomDto.java
  29. 24 0
      src/main/java/com/xjrsoft/module/room/dto/UpdateRoomRuleDto.java
  30. 0 8
      src/main/java/com/xjrsoft/module/room/dto/UpdateRoomStudentAppointDto.java
  31. 0 8
      src/main/java/com/xjrsoft/module/room/dto/UpdateRoomTeacherAppointDto.java
  32. 37 5
      src/main/java/com/xjrsoft/module/room/dto/WfRoomStayOvernightPageDto.java
  33. 2 6
      src/main/java/com/xjrsoft/module/room/entity/Room.java
  34. 2 6
      src/main/java/com/xjrsoft/module/room/entity/RoomBed.java
  35. 120 0
      src/main/java/com/xjrsoft/module/room/entity/RoomBedCheckRecord.java
  36. 108 0
      src/main/java/com/xjrsoft/module/room/entity/RoomBedCheckRecordRelation.java
  37. 2 6
      src/main/java/com/xjrsoft/module/room/entity/RoomBedRecord.java
  38. 103 0
      src/main/java/com/xjrsoft/module/room/entity/RoomRule.java
  39. 89 0
      src/main/java/com/xjrsoft/module/room/entity/RoomRuleItem.java
  40. 2 6
      src/main/java/com/xjrsoft/module/room/entity/RoomStudentAppoint.java
  41. 2 6
      src/main/java/com/xjrsoft/module/room/entity/RoomTeacherAppoint.java
  42. 17 0
      src/main/java/com/xjrsoft/module/room/mapper/RoomBedCheckRecordMapper.java
  43. 17 0
      src/main/java/com/xjrsoft/module/room/mapper/RoomBedCheckRecordRelationMapper.java
  44. 3 4
      src/main/java/com/xjrsoft/module/room/mapper/RoomBedMapper.java
  45. 16 0
      src/main/java/com/xjrsoft/module/room/mapper/RoomRuleItemMapper.java
  46. 29 0
      src/main/java/com/xjrsoft/module/room/mapper/RoomRuleMapper.java
  47. 48 0
      src/main/java/com/xjrsoft/module/room/service/IRoomBedCheckRecordService.java
  48. 8 4
      src/main/java/com/xjrsoft/module/room/service/IRoomBedService.java
  49. 54 0
      src/main/java/com/xjrsoft/module/room/service/IRoomRuleService.java
  50. 0 2
      src/main/java/com/xjrsoft/module/room/service/IRoomService.java
  51. 109 0
      src/main/java/com/xjrsoft/module/room/service/impl/RoomBedCheckRecordServiceImpl.java
  52. 63 7
      src/main/java/com/xjrsoft/module/room/service/impl/RoomBedServiceImpl.java
  53. 141 0
      src/main/java/com/xjrsoft/module/room/service/impl/RoomRuleServiceImpl.java
  54. 0 1
      src/main/java/com/xjrsoft/module/room/service/impl/RoomTeacherAppointServiceImpl.java
  55. 6 22
      src/main/java/com/xjrsoft/module/room/vo/AdjustBedClassPageVo.java
  56. 51 0
      src/main/java/com/xjrsoft/module/room/vo/AdjustBedClassStudentPageVo.java
  57. 5 1
      src/main/java/com/xjrsoft/module/room/vo/AdjustBedStudentPageVo.java
  58. 81 0
      src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordPageVo.java
  59. 59 0
      src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordRelationVo.java
  60. 70 0
      src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordVo.java
  61. 0 6
      src/main/java/com/xjrsoft/module/room/vo/RoomBedVo.java
  62. 38 0
      src/main/java/com/xjrsoft/module/room/vo/RoomRuleItemVo.java
  63. 46 0
      src/main/java/com/xjrsoft/module/room/vo/RoomRulePageVo.java
  64. 55 0
      src/main/java/com/xjrsoft/module/room/vo/RoomRuleVo.java
  65. 0 10
      src/main/java/com/xjrsoft/module/room/vo/RoomTeacherAppointPageVo.java
  66. 0 6
      src/main/java/com/xjrsoft/module/room/vo/RoomTeacherAppointVo.java
  67. 0 6
      src/main/java/com/xjrsoft/module/room/vo/RoomVo.java
  68. 14 56
      src/main/java/com/xjrsoft/module/room/vo/WfRoomStayOvernightPageVo.java
  69. 29 2
      src/main/resources/mapper/room/RoomBedMapper.xml
  70. 20 0
      src/main/resources/mapper/room/RoomRuleMapper.xml
  71. 60 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/controller/NewsController.java

@@ -90,7 +90,7 @@ public class NewsController {
 
     @PostMapping
     @ApiOperation(value = "新增新闻")
-    public RT<Long> add(@RequestBody AddNewsDto addNewsDto) {
+    public RT<Boolean> add(@RequestBody AddNewsDto addNewsDto) {
         return RT.ok(newsService.add(addNewsDto));
     }
 

+ 2 - 2
src/main/java/com/xjrsoft/module/oa/dto/AddNewsRelationDto.java

@@ -12,6 +12,6 @@ public class AddNewsRelationDto {
     @ApiModelProperty("关系ID")
     private Long relationId;
 
-    @ApiModelProperty("新闻主键")
-    private Long newsId;
+//    @ApiModelProperty("新闻主键")
+//    private Long newsId;
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/service/INewsService.java

@@ -23,7 +23,7 @@ public interface INewsService extends MPJBaseService<News> {
      * @param addNewsDto
      * @return
      */
-    Long add(AddNewsDto addNewsDto);
+    Boolean add(AddNewsDto addNewsDto);
 
     /**
      * 获取新闻分页

+ 2 - 2
src/main/java/com/xjrsoft/module/oa/service/impl/NewsServiceImpl.java

@@ -80,7 +80,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Long add(AddNewsDto addNewsDto) {
+    public Boolean add(AddNewsDto addNewsDto) {
 
         News news = BeanUtil.toBean(addNewsDto, News.class);
         news.setEnabledMark(EnabledMark.ENABLED.getCode());
@@ -136,7 +136,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
             SendMessage(news.getId());
         }
 
-        return news.getId();
+        return true;
     }
 
     @Override

+ 0 - 11
src/main/java/com/xjrsoft/module/room/controller/DistributeRoomBedController.java

@@ -1,21 +1,10 @@
 package com.xjrsoft.module.room.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import com.github.yulichang.toolkit.MPJWrappers;
-import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.model.result.RT;
-import com.xjrsoft.module.base.entity.BaseClass;
-import com.xjrsoft.module.base.entity.BaseOfficeBuild;
 import com.xjrsoft.module.room.dto.DistributeRoomBedDto;
-import com.xjrsoft.module.room.entity.Room;
-import com.xjrsoft.module.room.entity.RoomBed;
 import com.xjrsoft.module.room.service.IRoomBedService;
 import com.xjrsoft.module.room.vo.DistributeResultClassVo;
-import com.xjrsoft.module.room.vo.DistributeResultListVo;
-import com.xjrsoft.module.student.entity.BaseStudent;
-import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
-import com.xjrsoft.module.system.entity.DictionaryDetail;
-import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;

+ 30 - 22
src/main/java/com/xjrsoft/module/room/controller/RoomBedAdjustController.java

@@ -1,17 +1,17 @@
 package com.xjrsoft.module.room.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.room.dto.AdjustBedPageDto;
 import com.xjrsoft.module.room.dto.AdjustClassPageDto;
-import com.xjrsoft.module.room.dto.DistributeRoomBedDto;
+import com.xjrsoft.module.room.dto.AdjustStudentBedDto;
 import com.xjrsoft.module.room.service.IRoomBedService;
 import com.xjrsoft.module.room.vo.AdjustBedClassPageVo;
 import com.xjrsoft.module.room.vo.AdjustBedStudentPageVo;
-import com.xjrsoft.module.room.vo.DistributeResultClassVo;
 import com.xjrsoft.module.room.vo.NoBedStudentPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -43,22 +43,28 @@ public class RoomBedAdjustController {
     private final IRoomBedService roomBedService;
 
     @GetMapping(value = "/class-student")
-    @ApiOperation(value="需要分配/调整床位的学生(分页)")
+    @ApiOperation(value="需要分配/调整床位的学生")
     @SaCheckPermission("roomBedAdjust:detail")
-    public RT<PageOutput<AdjustBedClassPageVo>> classStudent(@Valid AdjustClassPageDto dto){
-
-        Page<AdjustBedClassPageVo> page = roomBedService.getClassStudetBed(new Page<>(dto.getLimit(), dto.getSize()), dto);
-        PageOutput<AdjustBedClassPageVo> pageOutput = ConventPage.getPageOutput(page, AdjustBedClassPageVo.class);
-        return RT.ok(pageOutput);
+    public RT<List<AdjustBedClassPageVo>> classStudent(@Valid AdjustClassPageDto dto){
+        if(ObjectUtil.isNull(dto.getClassId()) && ObjectUtil.isNull(dto.getGradeId())){
+            return RT.ok(new ArrayList<>());
+        }
+        List<AdjustBedClassPageVo> result = roomBedService.getClassStudetBed(dto);
+        if (result == null) {
+            return RT.ok(new ArrayList<>());
+        }
+        return RT.ok(result);
     }
 
     @GetMapping(value = "/bed-student")
-    @ApiOperation(value="床位学生列表(分页)")
+    @ApiOperation(value="床位学生列表")
     @SaCheckPermission("roomBedAdjust:detail")
-    public RT<PageOutput<AdjustBedStudentPageVo>> distributeClassPage(@Valid AdjustBedPageDto dto){
-        Page<AdjustBedStudentPageVo> page = roomBedService.getBedStudetInfo(new Page<>(dto.getLimit(), dto.getSize()), dto);
-        PageOutput<AdjustBedStudentPageVo> pageOutput = ConventPage.getPageOutput(page, AdjustBedStudentPageVo.class);
-        return RT.ok(pageOutput);
+    public RT<List<AdjustBedStudentPageVo>> distributeClassPage(@Valid AdjustBedPageDto dto){
+        List<AdjustBedStudentPageVo> result = roomBedService.getBedStudetInfo(dto);
+        if (result == null) {
+            return RT.ok(new ArrayList<>());
+        }
+        return RT.ok(result);
     }
 
     @GetMapping(value = "/no-bed-student")
@@ -78,16 +84,18 @@ public class RoomBedAdjustController {
         return RT.ok(roomBedService.clearStudentInfoByRoomId(id));
     }
 
+    @DeleteMapping(value="/delete-one")
+    @ApiOperation(value = "单个移出学生")
+    @SaCheckPermission("roomBedAdjust:delete")
+    public RT<Boolean> deleteOne(@Valid @RequestBody Long id){
+        return RT.ok(roomBedService.clearStudentInfoByBedId(id));
+    }
+
     @PutMapping
-    @ApiOperation(value = "修改寝室床位")
+    @ApiOperation(value = "修改学生的寝室床位")
     @SaCheckPermission("roomBedAdjust:edit")
-    public RT<List<DistributeResultClassVo>> adjustBed(@Valid @RequestBody DistributeRoomBedDto dto){
-        Boolean result = roomBedService.distributeRoomBed(dto);
-        List<DistributeResultClassVo> list = new ArrayList<>();
-        if(result){
-            list = roomBedService.getDistributeResult(dto);
-            return RT.ok(list);
-        }
-        return RT.ok(list);
+    public RT<Boolean> adjustBed(@Valid @RequestBody AdjustStudentBedDto dto){
+        Boolean result = roomBedService.adjustBed(dto);
+        return RT.ok(result);
     }
 }

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

@@ -0,0 +1,101 @@
+package com.xjrsoft.module.room.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.module.room.dto.AddRoomBedCheckRecordDto;
+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.RoomBedCheckRecordPageVo;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+* @title: 查寝记录
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/room" + "/roomBedCheckRecord")
+@Api(value = "/room"  + "/roomBedCheckRecord",tags = "查寝记录代码")
+@AllArgsConstructor
+public class RoomBedCheckRecordController {
+
+
+    private final IRoomBedCheckRecordService roomBedCheckRecordService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="查寝记录列表(分页)")
+    @SaCheckPermission("roombedcheckrecord:detail")
+    public RT<PageOutput<RoomBedCheckRecordPageVo>> page(@Valid RoomBedCheckRecordPageDto dto){
+        IPage<RoomBedCheckRecord> page = roomBedCheckRecordService.getPage(dto);
+        PageOutput<RoomBedCheckRecordPageVo> pageOutput = ConventPage.getPageOutput(page, RoomBedCheckRecordPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询查寝记录信息")
+    @SaCheckPermission("roombedcheckrecord:detail")
+    public RT<RoomBedCheckRecordVo> info(@RequestParam Long id){
+        RoomBedCheckRecord roomBedCheckRecord = roomBedCheckRecordService.getByIdDeep(id);
+        if (roomBedCheckRecord == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(roomBedCheckRecord, RoomBedCheckRecordVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增查寝记录")
+    @SaCheckPermission("roombedcheckrecord:add")
+    public RT<Boolean> add(@Valid @RequestBody AddRoomBedCheckRecordDto dto){
+        RoomBedCheckRecord roomBedCheckRecord = BeanUtil.toBean(dto, RoomBedCheckRecord.class);
+        boolean isSuccess = roomBedCheckRecordService.add(roomBedCheckRecord);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改查寝记录")
+    @SaCheckPermission("roombedcheckrecord:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateRoomBedCheckRecordDto dto){
+
+        RoomBedCheckRecord roomBedCheckRecord = BeanUtil.toBean(dto, RoomBedCheckRecord.class);
+        return RT.ok(roomBedCheckRecordService.update(roomBedCheckRecord));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除查寝记录")
+    @SaCheckPermission("roombedcheckrecord:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(roomBedCheckRecordService.delete(ids));
+
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid RoomBedCheckRecordPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<RoomBedCheckRecordPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<RoomBedCheckRecordPageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, RoomBedCheckRecordPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "RoomBedCheckRecord" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 0 - 1
src/main/java/com/xjrsoft/module/room/controller/RoomBedController.java

@@ -10,7 +10,6 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.room.dto.AddRoomBedDto;
 import com.xjrsoft.module.room.dto.DistributeClassPageDto;
-import com.xjrsoft.module.room.dto.DistributeRoomBedDto;
 import com.xjrsoft.module.room.dto.DistributeRoomBedPageDto;
 import com.xjrsoft.module.room.dto.RoomBedPageDto;
 import com.xjrsoft.module.room.dto.UpdateRoomBedDto;

+ 101 - 0
src/main/java/com/xjrsoft/module/room/controller/RoomRuleController.java

@@ -0,0 +1,101 @@
+package com.xjrsoft.module.room.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.module.room.dto.AddRoomRuleDto;
+import com.xjrsoft.module.room.dto.AddRoomRuleItemDto;
+import com.xjrsoft.module.room.dto.RoomRulePageDto;
+import com.xjrsoft.module.room.dto.UpdateRoomRuleDto;
+import com.xjrsoft.module.room.entity.RoomRule;
+import com.xjrsoft.module.room.service.IRoomRuleService;
+import com.xjrsoft.module.room.vo.RoomRulePageVo;
+import com.xjrsoft.module.room.vo.RoomRuleVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: 寝室生成规则
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/room" + "/roomRule")
+@Api(value = "/room"  + "/roomRule",tags = "寝室生成规则代码")
+@AllArgsConstructor
+public class RoomRuleController {
+
+
+    private final IRoomRuleService roomRuleService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="寝室生成规则列表(分页)")
+    @SaCheckPermission("roomrule:detail")
+    public RT<PageOutput<RoomRulePageVo>> page(@Valid RoomRulePageDto dto){
+        Page<RoomRulePageVo> page = roomRuleService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<RoomRulePageVo> pageOutput = ConventPage.getPageOutput(page, RoomRulePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询寝室生成规则信息")
+    @SaCheckPermission("roomrule:detail")
+    public RT<RoomRuleVo> info(@RequestParam Long id){
+        RoomRule roomRule = roomRuleService.getByIdDeep(id);
+        if (roomRule == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(roomRule, RoomRuleVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增寝室生成规则")
+    @SaCheckPermission("roomrule:add")
+    public RT<Boolean> add(@Valid @RequestBody AddRoomRuleDto dto){
+        RoomRule roomRule = BeanUtil.toBean(dto, RoomRule.class);
+        boolean isSuccess = roomRuleService.add(roomRule);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改寝室生成规则")
+    @SaCheckPermission("roomrule:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateRoomRuleDto dto){
+
+        RoomRule roomRule = BeanUtil.toBean(dto, RoomRule.class);
+        return RT.ok(roomRuleService.update(roomRule));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除寝室生成规则")
+    @SaCheckPermission("roomrule:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(roomRuleService.delete(ids));
+    }
+
+    @PostMapping(value="/bind-builds")
+    @ApiOperation(value = "绑定楼栋")
+    @SaCheckPermission("roomrule:edit")
+    public RT<Boolean> bindBuilds(@Valid @RequestBody AddRoomRuleItemDto dto){
+        return RT.ok(roomRuleService.bindBuilds(dto));
+    }
+
+}

+ 8 - 1
src/main/java/com/xjrsoft/module/room/controller/RoomStudentAppointController.java

@@ -19,7 +19,14 @@ import com.xjrsoft.module.room.vo.RoomStudentAppointVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 import java.util.List;

+ 23 - 19
src/main/java/com/xjrsoft/module/room/controller/WfRoomStayOvernightController.java

@@ -1,39 +1,33 @@
 package com.xjrsoft.module.room.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.xjrsoft.common.constant.GlobalConstant;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.room.dto.AddWfRoomStayOvernightDto;
 import com.xjrsoft.module.room.dto.UpdateWfRoomStayOvernightDto;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.support.ExcelTypeEnum;
-import org.springframework.http.ResponseEntity;
-import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
-
 import com.xjrsoft.module.room.dto.WfRoomStayOvernightPageDto;
 import com.xjrsoft.module.room.entity.WfRoomStayOvernight;
 import com.xjrsoft.module.room.service.IWfRoomStayOvernightService;
 import com.xjrsoft.module.room.vo.WfRoomStayOvernightPageVo;
-
 import com.xjrsoft.module.room.vo.WfRoomStayOvernightVo;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -55,12 +49,22 @@ public class WfRoomStayOvernightController {
     @ApiOperation(value="留校住宿申请列表(分页)")
     @SaCheckPermission("wfroomstayovernight:detail")
     public RT<PageOutput<WfRoomStayOvernightPageVo>> page(@Valid WfRoomStayOvernightPageDto dto){
-
-        LambdaQueryWrapper<WfRoomStayOvernight> queryWrapper = new LambdaQueryWrapper<>();
+        MPJLambdaWrapper<WfRoomStayOvernight> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
-                    .orderByDesc(WfRoomStayOvernight::getId)
+                .disableSubLogicDel()
+                .like(ObjectUtil.isNotNull(dto.getClassName()),WfRoomStayOvernight::getClassName,dto.getClassName())
+                .like(ObjectUtil.isNotNull(dto.getGenderName()),WfRoomStayOvernight::getGenderName,dto.getGenderName())
+                .like(ObjectUtil.isNotNull(dto.getStudentId()),WfRoomStayOvernight::getStudentId,dto.getStudentId())
+                .ge(ObjectUtil.isNotNull(dto.getStartTime()),WfRoomStayOvernight::getStartTime,dto.getStartTime())
+                .le(ObjectUtil.isNotNull(dto.getEndTime()),WfRoomStayOvernight::getEndTime,dto.getEndTime())
+                .leftJoin(XjrUser.class,XjrUser::getId,WfRoomStayOvernight::getApplicantUserId,ext1->ext1
+                        .selectAs(XjrUser::getName,WfRoomStayOvernightPageVo::getApplicantUserIdCN))
+                .leftJoin(XjrUser.class,XjrUser::getId,WfRoomStayOvernight::getHeadTeacherId,ext2->ext2
+                        .selectAs(XjrUser::getName,WfRoomStayOvernightPageVo::getHeadTeacherIdCN))
+                .orderByDesc(WfRoomStayOvernight::getId)
+                .select(WfRoomStayOvernight::getId)
                 .select(WfRoomStayOvernight.class,x -> VoToColumnUtil.fieldsToColumns(WfRoomStayOvernightPageVo.class).contains(x.getProperty()));
-        IPage<WfRoomStayOvernight> page = wfRoomStayOvernightService.page(ConventPage.getPage(dto), queryWrapper);
+        IPage<WfRoomStayOvernightPageVo> page = wfRoomStayOvernightService.selectJoinListPage(ConventPage.getPage(dto), WfRoomStayOvernightPageVo.class, queryWrapper);
         PageOutput<WfRoomStayOvernightPageVo> pageOutput = ConventPage.getPageOutput(page, WfRoomStayOvernightPageVo.class);
         return RT.ok(pageOutput);
     }

+ 69 - 0
src/main/java/com/xjrsoft/module/room/dto/AddRoomBedCheckRecordDto.java

@@ -0,0 +1,69 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+
+
+
+/**
+* @title: 查寝记录
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class AddRoomBedCheckRecordDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 填写人
+    */
+    @ApiModelProperty("填写人")
+    private Long userId;
+    /**
+    * 班级编号
+    */
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 查寝时间
+    */
+    @ApiModelProperty("查寝时间")
+    private Date checkRecordTime;
+    /**
+    * 情况
+    */
+    @ApiModelProperty("情况")
+    private String condition;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+
+    /**
+    * roomBedCheckRecordRelation
+    */
+    @ApiModelProperty("roomBedCheckRecordRelation子表")
+    private List<AddRoomBedCheckRecordRelationDto> roomBedCheckRecordRelationList;
+}

+ 58 - 0
src/main/java/com/xjrsoft/module/room/dto/AddRoomBedCheckRecordRelationDto.java

@@ -0,0 +1,58 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 查寝记录(关联寝室)
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class AddRoomBedCheckRecordRelationDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 查寝记录编号(room_bed_check_record)
+    */
+    @ApiModelProperty("查寝记录编号(room_bed_check_record)")
+    private Long roomBedCheckRecordId;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 楼栋(base_office_build)
+    */
+    @ApiModelProperty("楼栋(base_office_build)")
+    private String officeBuildId;
+    /**
+    * 楼层
+    */
+    @ApiModelProperty("楼层")
+    private Integer floorNumber;
+    /**
+    * 寝室名称
+    */
+    @ApiModelProperty("寝室名称")
+    private String roomName;
+
+}

+ 1 - 7
src/main/java/com/xjrsoft/module/room/dto/AddRoomDto.java

@@ -2,14 +2,8 @@ package com.xjrsoft.module.room.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Date;
+import java.io.Serializable;
 
 
 

+ 37 - 0
src/main/java/com/xjrsoft/module/room/dto/AddRoomRuleDto.java

@@ -0,0 +1,37 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+
+/**
+* @title: 寝室生成规则
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class AddRoomRuleDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 规则配置(多个规则用逗号隔开)
+    */
+    @ApiModelProperty("规则配置(多个规则用逗号隔开,1为楼栋,2为楼层,3为寝室号)")
+    private String rule;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/room/dto/AddRoomRuleItemDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+* @title: 寝室生成规则项
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class AddRoomRuleItemDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 寝室生成规则编号(room_rule)
+    */
+    @ApiModelProperty("寝室生成规则编号(room_rule)")
+    private Long roomRuleId;
+    /**
+    * 楼栋(base_office_build)
+    */
+    @ApiModelProperty("楼栋(base_office_build)")
+    private List<Long> officeBuildIds;
+
+}

+ 1 - 7
src/main/java/com/xjrsoft/module/room/dto/AddRoomStudentAppointDto.java

@@ -2,14 +2,8 @@ package com.xjrsoft.module.room.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Date;
+import java.io.Serializable;
 
 
 

+ 15 - 3
src/main/java/com/xjrsoft/module/room/dto/AdjustBedPageDto.java

@@ -16,10 +16,22 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = false)
 public class AdjustBedPageDto extends PageInput {
 
-    @ApiModelProperty("年级id")
-    public Long gradeId;
+    @ApiModelProperty("是否空寝室(1:是,0:否)")
+    public Integer isEmptyRoom;
 
-    @ApiModelProperty("年级id")
+    @ApiModelProperty("楼栋id")
+    public Long buildId;
+
+    @ApiModelProperty("楼层")
+    public Long floorNumber;
+
+    @ApiModelProperty("寝室号")
+    public String roomName;
+
+    @ApiModelProperty("是否混合寝室(1:是,0:否)")
+    public Integer isMax;
+
+    @ApiModelProperty("入住班级")
     public Long classId;
 
 }

+ 9 - 0
src/main/java/com/xjrsoft/module/room/dto/AdjustClassPageDto.java

@@ -22,4 +22,13 @@ public class AdjustClassPageDto extends PageInput {
     @ApiModelProperty("年级id")
     public Long classId;
 
+    @ApiModelProperty("入住性别")
+    public String gender;
+
+    @ApiModelProperty("是否安排寝室(1:是,0,否)")
+    public Integer isDistribute;
+
+    @ApiModelProperty("姓名")
+    public String studentName;
+
 }

+ 25 - 0
src/main/java/com/xjrsoft/module/room/dto/AdjustStudentBedDto.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.room.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 寝室床位分页查询入参
+* @Author dzx
+* @Date: 2023-12-27
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class AdjustStudentBedDto extends PageInput {
+
+    @ApiModelProperty("床位id")
+    public Long bedId;
+
+    @ApiModelProperty("学生userId")
+    public Long studentUserId;
+
+}

+ 18 - 0
src/main/java/com/xjrsoft/module/room/dto/RoomBedCheckRecordPageDto.java

@@ -0,0 +1,18 @@
+package com.xjrsoft.module.room.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 查寝记录分页查询入参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RoomBedCheckRecordPageDto extends PageInput {
+
+}

+ 0 - 6
src/main/java/com/xjrsoft/module/room/dto/RoomBedPageDto.java

@@ -4,12 +4,6 @@ import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.Date;
 
 
 /**

+ 0 - 6
src/main/java/com/xjrsoft/module/room/dto/RoomPageDto.java

@@ -4,12 +4,6 @@ import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.Date;
 
 
 /**

+ 19 - 0
src/main/java/com/xjrsoft/module/room/dto/RoomRulePageDto.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.room.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 寝室生成规则分页查询入参
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RoomRulePageDto extends PageInput {
+
+
+}

+ 0 - 6
src/main/java/com/xjrsoft/module/room/dto/RoomTeacherAppointPageDto.java

@@ -4,12 +4,6 @@ import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.Date;
 
 
 /**

+ 33 - 0
src/main/java/com/xjrsoft/module/room/dto/UpdateRoomBedCheckRecordDto.java

@@ -0,0 +1,33 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+
+
+
+/**
+* @title: 查寝记录
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class UpdateRoomBedCheckRecordDto extends AddRoomBedCheckRecordDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 0 - 8
src/main/java/com/xjrsoft/module/room/dto/UpdateRoomBedDto.java

@@ -2,14 +2,6 @@ package com.xjrsoft.module.room.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import java.util.List;
-import java.util.Date;
 
 
 

+ 0 - 8
src/main/java/com/xjrsoft/module/room/dto/UpdateRoomDto.java

@@ -2,14 +2,6 @@ package com.xjrsoft.module.room.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import java.util.List;
-import java.util.Date;
 
 
 

+ 24 - 0
src/main/java/com/xjrsoft/module/room/dto/UpdateRoomRuleDto.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+* @title: 寝室生成规则
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class UpdateRoomRuleDto extends AddRoomRuleDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 0 - 8
src/main/java/com/xjrsoft/module/room/dto/UpdateRoomStudentAppointDto.java

@@ -2,14 +2,6 @@ package com.xjrsoft.module.room.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import java.util.List;
-import java.util.Date;
 
 
 

+ 0 - 8
src/main/java/com/xjrsoft/module/room/dto/UpdateRoomTeacherAppointDto.java

@@ -2,14 +2,6 @@ package com.xjrsoft.module.room.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import java.util.List;
-import java.util.Date;
 
 
 

+ 37 - 5
src/main/java/com/xjrsoft/module/room/dto/WfRoomStayOvernightPageDto.java

@@ -1,14 +1,12 @@
 package com.xjrsoft.module.room.dto;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
 import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.springframework.format.annotation.DateTimeFormat;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -22,5 +20,39 @@ import java.util.Date;
 @EqualsAndHashCode(callSuper = false)
 public class WfRoomStayOvernightPageDto extends PageInput {
 
-
+    /**
+     * 班级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级")
+    @ApiModelProperty("班级")
+    private String className;
+    /**
+     * 学号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学号")
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+     * 性别
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("性别")
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+     * 开始时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("开始时间")
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("结束时间")
+    @ApiModelProperty("结束时间")
+    private Date endTime;
 }

+ 2 - 6
src/main/java/com/xjrsoft/module/room/entity/Room.java

@@ -2,18 +2,14 @@ package com.xjrsoft.module.room.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.yulichang.annotation.EntityMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.io.Serializable;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
 import java.util.Date;
 
 

+ 2 - 6
src/main/java/com/xjrsoft/module/room/entity/RoomBed.java

@@ -2,18 +2,14 @@ package com.xjrsoft.module.room.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.yulichang.annotation.EntityMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.io.Serializable;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
 import java.util.Date;
 
 

+ 120 - 0
src/main/java/com/xjrsoft/module/room/entity/RoomBedCheckRecord.java

@@ -0,0 +1,120 @@
+package com.xjrsoft.module.room.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 查寝记录
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@TableName("room_bed_check_record")
+@ApiModel(value = "room_bed_check_record", description = "查寝记录")
+public class RoomBedCheckRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 填写人
+    */
+    @ApiModelProperty("填写人")
+    private Long userId;
+    /**
+    * 班级编号
+    */
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 查寝时间
+    */
+    @ApiModelProperty("查寝时间")
+    private Date checkRecordTime;
+    /**
+    * 情况
+    */
+    @ApiModelProperty("情况")
+    private String condition;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+
+    /**
+    * roomBedCheckRecordRelation
+    */
+    @ApiModelProperty("roomBedCheckRecordRelation子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "roomBedCheckRecordId")
+    private List<RoomBedCheckRecordRelation> roomBedCheckRecordRelationList;
+
+}

+ 108 - 0
src/main/java/com/xjrsoft/module/room/entity/RoomBedCheckRecordRelation.java

@@ -0,0 +1,108 @@
+package com.xjrsoft.module.room.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 查寝记录(关联寝室)
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@TableName("room_bed_check_record_relation")
+@ApiModel(value = "room_bed_check_record_relation", description = "查寝记录(关联寝室)")
+public class RoomBedCheckRecordRelation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 查寝记录编号(room_bed_check_record)
+    */
+    @ApiModelProperty("查寝记录编号(room_bed_check_record)")
+    private Long roomBedCheckRecordId;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 楼栋(base_office_build)
+    */
+    @ApiModelProperty("楼栋(base_office_build)")
+    private String officeBuildId;
+    /**
+    * 楼层
+    */
+    @ApiModelProperty("楼层")
+    private Integer floorNumber;
+    /**
+    * 寝室名称
+    */
+    @ApiModelProperty("寝室名称")
+    private String roomName;
+
+
+}

+ 2 - 6
src/main/java/com/xjrsoft/module/room/entity/RoomBedRecord.java

@@ -2,18 +2,14 @@ package com.xjrsoft.module.room.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.yulichang.annotation.EntityMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.io.Serializable;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
 import java.util.Date;
 
 

+ 103 - 0
src/main/java/com/xjrsoft/module/room/entity/RoomRule.java

@@ -0,0 +1,103 @@
+package com.xjrsoft.module.room.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+* @title: 寝室生成规则
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@TableName("room_rule")
+@ApiModel(value = "room_rule", description = "寝室生成规则")
+public class RoomRule implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 规则配置(多个规则用逗号隔开)
+    */
+    @ApiModelProperty("规则配置(多个规则用逗号隔开)")
+    private String rule;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+    * roomRuleItem
+    */
+    @ApiModelProperty("roomRuleItem子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "roomRuleId")
+    private List<RoomRuleItem> roomRuleItemList;
+
+}

+ 89 - 0
src/main/java/com/xjrsoft/module/room/entity/RoomRuleItem.java

@@ -0,0 +1,89 @@
+package com.xjrsoft.module.room.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 寝室生成规则项
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@TableName("room_rule_item")
+@ApiModel(value = "room_rule_item", description = "寝室生成规则项")
+public class RoomRuleItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 寝室生成规则编号(room_rule)
+    */
+    @ApiModelProperty("寝室生成规则编号(room_rule)")
+    private Long roomRuleId;
+    /**
+    * 楼栋(base_office_build)
+    */
+    @ApiModelProperty("楼栋(base_office_build)")
+    private Long officeBuildId;
+
+
+}

+ 2 - 6
src/main/java/com/xjrsoft/module/room/entity/RoomStudentAppoint.java

@@ -2,18 +2,14 @@ package com.xjrsoft.module.room.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.yulichang.annotation.EntityMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.io.Serializable;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
 import java.util.Date;
 
 

+ 2 - 6
src/main/java/com/xjrsoft/module/room/entity/RoomTeacherAppoint.java

@@ -2,18 +2,14 @@ package com.xjrsoft.module.room.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.yulichang.annotation.EntityMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.io.Serializable;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
 import java.util.Date;
 
 

+ 17 - 0
src/main/java/com/xjrsoft/module/room/mapper/RoomBedCheckRecordMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.room.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 查寝记录
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Mapper
+public interface RoomBedCheckRecordMapper extends MPJBaseMapper<RoomBedCheckRecord> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/room/mapper/RoomBedCheckRecordRelationMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.room.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 查寝记录(关联寝室)
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Mapper
+public interface RoomBedCheckRecordRelationMapper extends MPJBaseMapper<RoomBedCheckRecordRelation> {
+
+}

+ 3 - 4
src/main/java/com/xjrsoft/module/room/mapper/RoomBedMapper.java

@@ -10,6 +10,7 @@ import com.xjrsoft.module.room.dto.DistributeRoomBedPageDto;
 import com.xjrsoft.module.room.dto.RoomBedPageDto;
 import com.xjrsoft.module.room.entity.RoomBed;
 import com.xjrsoft.module.room.vo.AdjustBedClassPageVo;
+import com.xjrsoft.module.room.vo.AdjustBedClassStudentPageVo;
 import com.xjrsoft.module.room.vo.AdjustBedStudentPageVo;
 import com.xjrsoft.module.room.vo.DistributeClassPageVo;
 import com.xjrsoft.module.room.vo.DistributeResultListVo;
@@ -59,19 +60,17 @@ public interface RoomBedMapper extends MPJBaseMapper<RoomBed> {
 
     /**
      * 调整床位,左边的班级学生信息
-     * @param page
      * @param dto
      * @return
      */
-    Page<AdjustBedClassPageVo> getClassStudetBed(Page<AdjustClassPageDto> page, @Param("dto") AdjustClassPageDto dto);
+    List<AdjustBedClassStudentPageVo> getClassStudetBed(@Param("dto") AdjustClassPageDto dto);
 
     /**
      * 调整床位,右边的床位学生信息
-     * @param page
      * @param dto
      * @return
      */
-    Page<AdjustBedStudentPageVo> getBedStudentInfo(Page<AdjustBedPageDto> page, @Param("dto") AdjustBedPageDto dto);
+    List<AdjustBedStudentPageVo> getBedStudentInfo(@Param("dto") AdjustBedPageDto dto);
 
 
     /**

+ 16 - 0
src/main/java/com/xjrsoft/module/room/mapper/RoomRuleItemMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.room.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.room.entity.RoomRuleItem;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 寝室生成规则项
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Mapper
+public interface RoomRuleItemMapper extends MPJBaseMapper<RoomRuleItem> {
+
+}

+ 29 - 0
src/main/java/com/xjrsoft/module/room/mapper/RoomRuleMapper.java

@@ -0,0 +1,29 @@
+package com.xjrsoft.module.room.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.room.dto.RoomRulePageDto;
+import com.xjrsoft.module.room.entity.RoomRule;
+import com.xjrsoft.module.room.vo.RoomRulePageVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 寝室生成规则
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Mapper
+public interface RoomRuleMapper extends MPJBaseMapper<RoomRule> {
+    /**
+     * 分页查询
+     * @param page
+     * @param dto
+     * @return
+     */
+    Page<RoomRulePageVo> getPage(Page<RoomRulePageDto> page, RoomRulePageDto dto);
+
+    Integer getMaxSortCode();
+
+    Integer getItemMaxSortCode();
+}

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

@@ -0,0 +1,48 @@
+package com.xjrsoft.module.room.service;
+
+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 java.util.List;
+
+/**
+* @title: 查寝记录
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+
+public interface IRoomBedCheckRecordService extends MPJBaseService<RoomBedCheckRecord> {
+    /**
+    * 新增
+    *
+    * @param roomBedCheckRecord
+    * @return
+    */
+    Boolean add(RoomBedCheckRecord roomBedCheckRecord);
+
+    /**
+    * 更新
+    *
+    * @param roomBedCheckRecord
+    * @return
+    */
+    Boolean update(RoomBedCheckRecord roomBedCheckRecord);
+
+    /**
+    * 删除
+    *
+    * @param ids
+    * @return
+    */
+    Boolean delete(List<Long> ids);
+
+    /**
+     * 获取分页
+     * @param dto
+     * @return
+     */
+    IPage<RoomBedCheckRecord> getPage(RoomBedCheckRecordPageDto dto);
+}

+ 8 - 4
src/main/java/com/xjrsoft/module/room/service/IRoomBedService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.room.dto.AdjustBedPageDto;
 import com.xjrsoft.module.room.dto.AdjustClassPageDto;
+import com.xjrsoft.module.room.dto.AdjustStudentBedDto;
 import com.xjrsoft.module.room.dto.DistributeClassPageDto;
 import com.xjrsoft.module.room.dto.DistributeRoomBedDto;
 import com.xjrsoft.module.room.dto.DistributeRoomBedPageDto;
@@ -41,6 +42,8 @@ public interface IRoomBedService extends MPJBaseService<RoomBed> {
 
     Boolean clearStudentInfoByRoomId(Long id);
 
+    Boolean clearStudentInfoByBedId(Long id);
+
     /**
      * 分配床位,第一步查询班级
      * @param page
@@ -68,19 +71,17 @@ public interface IRoomBedService extends MPJBaseService<RoomBed> {
 
     /**
      * 调整床位,左边的班级学生信息
-     * @param page
      * @param dto
      * @return
      */
-    Page<AdjustBedClassPageVo> getClassStudetBed(Page<AdjustClassPageDto> page, AdjustClassPageDto dto);
+    List<AdjustBedClassPageVo> getClassStudetBed(AdjustClassPageDto dto);
 
     /**
      * 调整床位,右边的床位学生信息
-     * @param page
      * @param dto
      * @return
      */
-    Page<AdjustBedStudentPageVo> getBedStudetInfo(Page<AdjustBedPageDto> page, AdjustBedPageDto dto);
+    List<AdjustBedStudentPageVo> getBedStudetInfo(AdjustBedPageDto dto);
 
     /**
      * 未分配床位的学生信息
@@ -89,4 +90,7 @@ public interface IRoomBedService extends MPJBaseService<RoomBed> {
      * @return
      */
     Page<NoBedStudentPageVo> getNoBedStudent(Page<AdjustBedPageDto> page, AdjustBedPageDto dto);
+
+    Boolean adjustBed(AdjustStudentBedDto dto);
+
 }

+ 54 - 0
src/main/java/com/xjrsoft/module/room/service/IRoomRuleService.java

@@ -0,0 +1,54 @@
+package com.xjrsoft.module.room.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.room.dto.AddRoomRuleItemDto;
+import com.xjrsoft.module.room.dto.RoomRulePageDto;
+import com.xjrsoft.module.room.entity.RoomRule;
+import com.xjrsoft.module.room.vo.RoomRulePageVo;
+
+import java.util.List;
+
+/**
+* @title: 寝室生成规则
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+
+public interface IRoomRuleService extends MPJBaseService<RoomRule> {
+    /**
+    * 新增
+    *
+    * @param roomRule
+    * @return
+    */
+    Boolean add(RoomRule roomRule);
+
+    /**
+    * 更新
+    *
+    * @param roomRule
+    * @return
+    */
+    Boolean update(RoomRule roomRule);
+
+    /**
+    * 删除
+    *
+    * @param ids
+    * @return
+    */
+    Boolean delete(List<Long> ids);
+
+
+    /**
+     * 分页查询
+     * @param page
+     * @param dto
+     * @return
+     */
+    Page<RoomRulePageVo> getPage(Page<RoomRulePageDto> page, RoomRulePageDto dto);
+
+    Boolean bindBuilds(AddRoomRuleItemDto dto);
+}

+ 0 - 2
src/main/java/com/xjrsoft/module/room/service/IRoomService.java

@@ -7,8 +7,6 @@ import com.xjrsoft.module.room.dto.RoomPageDto;
 import com.xjrsoft.module.room.entity.Room;
 import com.xjrsoft.module.room.vo.RoomPageVo;
 
-import java.util.List;
-
 /**
 * @title: 寝室
 * @Author dzx

+ 109 - 0
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedCheckRecordServiceImpl.java

@@ -0,0 +1,109 @@
+package com.xjrsoft.module.room.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.room.dto.RoomBedCheckRecordPageDto;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecord;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+import com.xjrsoft.module.room.mapper.RoomBedCheckRecordMapper;
+import com.xjrsoft.module.room.mapper.RoomBedCheckRecordRelationMapper;
+import com.xjrsoft.module.room.service.IRoomBedCheckRecordService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+* @title: 查寝记录
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class RoomBedCheckRecordServiceImpl extends MPJBaseServiceImpl<RoomBedCheckRecordMapper, RoomBedCheckRecord> implements IRoomBedCheckRecordService {
+    private final RoomBedCheckRecordMapper roomBedCheckRecordRoomBedCheckRecordMapper;
+
+    private final RoomBedCheckRecordRelationMapper roomBedCheckRecordRoomBedCheckRecordRelationMapper;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(RoomBedCheckRecord roomBedCheckRecord) {
+        roomBedCheckRecordRoomBedCheckRecordMapper.insert(roomBedCheckRecord);
+        for (RoomBedCheckRecordRelation roomBedCheckRecordRelation : roomBedCheckRecord.getRoomBedCheckRecordRelationList()) {
+            roomBedCheckRecordRelation.setRoomBedCheckRecordId(roomBedCheckRecord.getId());
+            roomBedCheckRecordRoomBedCheckRecordRelationMapper.insert(roomBedCheckRecordRelation);
+        }
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean update(RoomBedCheckRecord roomBedCheckRecord) {
+        roomBedCheckRecordRoomBedCheckRecordMapper.updateById(roomBedCheckRecord);
+        //********************************* RoomBedCheckRecordRelation  增删改  开始 *******************************************/
+        {
+            // 查出所有子级的id
+            List<RoomBedCheckRecordRelation> roomBedCheckRecordRelationList = roomBedCheckRecordRoomBedCheckRecordRelationMapper.selectList(Wrappers.lambdaQuery(RoomBedCheckRecordRelation.class).eq(RoomBedCheckRecordRelation::getRoomBedCheckRecordId, roomBedCheckRecord.getId()).select(RoomBedCheckRecordRelation::getId));
+            List<Long> roomBedCheckRecordRelationIds = roomBedCheckRecordRelationList.stream().map(RoomBedCheckRecordRelation::getId).collect(Collectors.toList());
+            //原有子表单 没有被删除的主键
+            List<Long> roomBedCheckRecordRelationOldIds = roomBedCheckRecord.getRoomBedCheckRecordRelationList().stream().map(RoomBedCheckRecordRelation::getId).filter(Objects::nonNull).collect(Collectors.toList());
+            //找到需要删除的id
+            List<Long> roomBedCheckRecordRelationRemoveIds = roomBedCheckRecordRelationIds.stream().filter(item -> !roomBedCheckRecordRelationOldIds.contains(item)).collect(Collectors.toList());
+
+            for (RoomBedCheckRecordRelation roomBedCheckRecordRelation : roomBedCheckRecord.getRoomBedCheckRecordRelationList()) {
+                //如果不等于空则修改
+                if (roomBedCheckRecordRelation.getId() != null) {
+                    roomBedCheckRecordRoomBedCheckRecordRelationMapper.updateById(roomBedCheckRecordRelation);
+                }
+                //如果等于空 则新增
+                else {
+                    //已经不存在的id 删除
+                    roomBedCheckRecordRelation.setRoomBedCheckRecordId(roomBedCheckRecord.getId());
+                    roomBedCheckRecordRoomBedCheckRecordRelationMapper.insert(roomBedCheckRecordRelation);
+                }
+            }
+            //已经不存在的id 删除
+            if(roomBedCheckRecordRelationRemoveIds.size() > 0){
+                roomBedCheckRecordRoomBedCheckRecordRelationMapper.deleteBatchIds(roomBedCheckRecordRelationRemoveIds);
+            }
+        }
+        //********************************* RoomBedCheckRecordRelation  增删改  结束 *******************************************/
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        roomBedCheckRecordRoomBedCheckRecordMapper.deleteBatchIds(ids);
+        roomBedCheckRecordRoomBedCheckRecordRelationMapper.delete(Wrappers.lambdaQuery(RoomBedCheckRecordRelation.class).in(RoomBedCheckRecordRelation::getRoomBedCheckRecordId, ids));
+
+        return true;
+    }
+
+    @Override
+    public IPage<RoomBedCheckRecord> getPage(RoomBedCheckRecordPageDto dto) {
+        //查询当前用户的班级
+//        LambdaQueryWrapper<BaseClass> queryWrapper = new LambdaQueryWrapper<>();
+//        queryWrapper
+//                .eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong())
+//                .orderByDesc(BaseClass::getId);
+//        BaseClass
+//
+//        MPJLambdaWrapper<RoomBedCheckRecord> query = new MPJLambdaWrapper<>();
+//
+//        LambdaQueryWrapper<RoomBedCheckRecord> queryWrapper = new LambdaQueryWrapper<>();
+//        queryWrapper
+//                .orderByDesc(RoomBedCheckRecord::getId)
+//                .select(RoomBedCheckRecord.class,x -> VoToColumnUtil.fieldsToColumns(RoomBedCheckRecordPageVo.class).contains(x.getProperty()));
+        //IPage<RoomBedCheckRecord> page = this.getPage(ConventPage.getPage(dto), queryWrapper);
+        return null;
+    }
+}

+ 63 - 7
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedServiceImpl.java

@@ -2,6 +2,9 @@ package com.xjrsoft.module.room.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -12,6 +15,7 @@ import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.room.dto.AdjustBedPageDto;
 import com.xjrsoft.module.room.dto.AdjustClassPageDto;
+import com.xjrsoft.module.room.dto.AdjustStudentBedDto;
 import com.xjrsoft.module.room.dto.DistributeClassPageDto;
 import com.xjrsoft.module.room.dto.DistributeRoomBedDto;
 import com.xjrsoft.module.room.dto.DistributeRoomBedPageDto;
@@ -24,6 +28,7 @@ import com.xjrsoft.module.room.mapper.RoomBedRecordMapper;
 import com.xjrsoft.module.room.mapper.RoomMapper;
 import com.xjrsoft.module.room.service.IRoomBedService;
 import com.xjrsoft.module.room.vo.AdjustBedClassPageVo;
+import com.xjrsoft.module.room.vo.AdjustBedClassStudentPageVo;
 import com.xjrsoft.module.room.vo.AdjustBedStudentPageVo;
 import com.xjrsoft.module.room.vo.DistributeClassPageVo;
 import com.xjrsoft.module.room.vo.DistributeResultClassVo;
@@ -71,7 +76,16 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
         for (Long id : ids) {
             RoomBed roomBed = roomBedMapper.selectById(id);
             roomBed.setStudentUserId(null);
-            roomBedMapper.updateById(roomBed);
+//            RoomBed roomBedData = BeanUtil.toBean(roomBed, RoomBed.class);
+//            roomBedMapper.updateById(new RoomBed(){{
+//                setId(id);
+//                setStudentUserId(null);
+//            }});
+            UpdateWrapper<RoomBed> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.eq("id", id);
+            updateWrapper.setSql("student_user_id = null");
+            updateWrapper.setSql("is_check_in = 0");
+            roomBedMapper.update(roomBed, updateWrapper);
         }
         return true;
     }
@@ -82,12 +96,27 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
                 MPJWrappers.<RoomBed>lambdaJoin().eq(RoomBed::getRoomId, id)
         );
         for (RoomBed roomBed : bedList) {
-            roomBed.setStudentUserId(null);
-            roomBedMapper.updateById(roomBed);
+            UpdateWrapper<RoomBed> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.eq("id", roomBed.getId());
+            updateWrapper.setSql("student_user_id = null");
+            updateWrapper.setSql("is_check_in = 0");
+            roomBedMapper.update(roomBed, updateWrapper);
         }
         return true;
     }
 
+    @Override
+    public Boolean clearStudentInfoByBedId(Long id) {
+        UpdateWrapper<RoomBed> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", id);
+        updateWrapper.setSql("student_user_id = null");
+        updateWrapper.setSql("is_check_in = 0");
+
+        RoomBed roomBed = roomBedMapper.selectById(id);
+        roomBedMapper.update(roomBed, updateWrapper);
+        return true;
+    }
+
     @Override
     public Page<DistributeClassPageVo> getDistributeClassInfo(Page<DistributeClassPageDto> page, DistributeClassPageDto dto) {
         return roomBedMapper.getDistributeClassInfo(page, dto);
@@ -210,18 +239,45 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
     }
 
     @Override
-    public Page<AdjustBedClassPageVo> getClassStudetBed(Page<AdjustClassPageDto> page, AdjustClassPageDto dto) {
-        Page<AdjustBedClassPageVo> result = roomBedMapper.getClassStudetBed(page, dto);
+    public List<AdjustBedClassPageVo> getClassStudetBed(AdjustClassPageDto dto) {
+        List<BaseClass> classList = baseClassMapper.selectList(
+            new QueryWrapper<BaseClass>().lambda()
+            .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
+            .eq(ObjectUtil.isNotNull(dto.getClassId()), BaseClass::getId, dto.getClassId())
+            .eq(ObjectUtil.isNotNull(dto.getGradeId()), BaseClass::getGradeId, dto.getGradeId())
+        );
+        List<AdjustBedClassPageVo> result = BeanUtil.copyToList(classList, AdjustBedClassPageVo.class);
+        List<AdjustBedClassStudentPageVo> allStudent = roomBedMapper.getClassStudetBed(dto);
+        for (AdjustBedClassPageVo adjustBedClassPageVo : result) {
+            List<AdjustBedClassStudentPageVo> studentList = new ArrayList<>();
+            for (AdjustBedClassStudentPageVo adjustBedClassStudentPageVo : allStudent) {
+                if(!adjustBedClassPageVo.getId().equals(adjustBedClassStudentPageVo.getClassId())){
+                    continue;
+                }
+                studentList.add(adjustBedClassStudentPageVo);
+            }
+            adjustBedClassPageVo.setStudentList(studentList);
+        }
+        
         return result;
     }
 
     @Override
-    public Page<AdjustBedStudentPageVo> getBedStudetInfo(Page<AdjustBedPageDto> page, AdjustBedPageDto dto) {
-        return roomBedMapper.getBedStudentInfo(page, dto);
+    public List<AdjustBedStudentPageVo> getBedStudetInfo(AdjustBedPageDto dto) {
+        return roomBedMapper.getBedStudentInfo(dto);
     }
 
     @Override
     public Page<NoBedStudentPageVo> getNoBedStudent(Page<AdjustBedPageDto> page, AdjustBedPageDto dto) {
         return roomBedMapper.getNoBedStudent(page, dto);
     }
+
+    @Override
+    public Boolean adjustBed(AdjustStudentBedDto dto) {
+        roomBedMapper.updateById(new RoomBed(){{
+            setId(dto.getBedId());
+            setStudentUserId(dto.getStudentUserId());
+        }});
+        return true;
+    }
 }

+ 141 - 0
src/main/java/com/xjrsoft/module/room/service/impl/RoomRuleServiceImpl.java

@@ -0,0 +1,141 @@
+package com.xjrsoft.module.room.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.room.dto.AddRoomRuleItemDto;
+import com.xjrsoft.module.room.dto.RoomRulePageDto;
+import com.xjrsoft.module.room.entity.RoomRule;
+import com.xjrsoft.module.room.entity.RoomRuleItem;
+import com.xjrsoft.module.room.mapper.RoomRuleItemMapper;
+import com.xjrsoft.module.room.mapper.RoomRuleMapper;
+import com.xjrsoft.module.room.service.IRoomRuleService;
+import com.xjrsoft.module.room.vo.RoomRulePageVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+* @title: 寝室生成规则
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class RoomRuleServiceImpl extends MPJBaseServiceImpl<RoomRuleMapper, RoomRule> implements IRoomRuleService {
+    private final RoomRuleMapper roomRuleRoomRuleMapper;
+
+    private final RoomRuleItemMapper roomRuleRoomRuleItemMapper;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(RoomRule roomRule) {
+        roomRule.setSortCode(roomRuleRoomRuleMapper.getMaxSortCode() + 1);
+        roomRuleRoomRuleMapper.insert(roomRule);
+//        for (RoomRuleItem roomRuleItem : roomRule.getRoomRuleItemList()) {
+//            roomRuleItem.setRoomRuleId(roomRule.getId());
+//            roomRuleRoomRuleItemMapper.insert(roomRuleItem);
+//        }
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean update(RoomRule roomRule) {
+        roomRuleRoomRuleMapper.updateById(roomRule);
+        //********************************* RoomRuleItem  增删改  开始 *******************************************/
+        {
+            // 查出所有子级的id
+            List<RoomRuleItem> roomRuleItemList = roomRuleRoomRuleItemMapper.selectList(Wrappers.lambdaQuery(RoomRuleItem.class).eq(RoomRuleItem::getRoomRuleId, roomRule.getId()).select(RoomRuleItem::getId));
+            List<Long> roomRuleItemIds = roomRuleItemList.stream().map(RoomRuleItem::getId).collect(Collectors.toList());
+            //原有子表单 没有被删除的主键
+            List<Long> roomRuleItemOldIds = roomRule.getRoomRuleItemList().stream().map(RoomRuleItem::getId).filter(Objects::nonNull).collect(Collectors.toList());
+            //找到需要删除的id
+            List<Long> roomRuleItemRemoveIds = roomRuleItemIds.stream().filter(item -> !roomRuleItemOldIds.contains(item)).collect(Collectors.toList());
+
+            for (RoomRuleItem roomRuleItem : roomRule.getRoomRuleItemList()) {
+                //如果不等于空则修改
+                if (roomRuleItem.getId() != null) {
+                    roomRuleRoomRuleItemMapper.updateById(roomRuleItem);
+                }
+                //如果等于空 则新增
+                else {
+                    //已经不存在的id 删除
+                    roomRuleItem.setRoomRuleId(roomRule.getId());
+                    roomRuleRoomRuleItemMapper.insert(roomRuleItem);
+                }
+            }
+            //已经不存在的id 删除
+            if(roomRuleItemRemoveIds.size() > 0){
+                roomRuleRoomRuleItemMapper.deleteBatchIds(roomRuleItemRemoveIds);
+            }
+        }
+        //********************************* RoomRuleItem  增删改  结束 *******************************************/
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        roomRuleRoomRuleMapper.deleteBatchIds(ids);
+        roomRuleRoomRuleItemMapper.delete(Wrappers.lambdaQuery(RoomRuleItem.class).in(RoomRuleItem::getRoomRuleId, ids));
+
+        return true;
+    }
+
+    @Override
+    public Page<RoomRulePageVo> getPage(Page<RoomRulePageDto> page, RoomRulePageDto dto) {
+        Page<RoomRulePageVo> result = roomRuleRoomRuleMapper.getPage(page, dto);
+        List<RoomRulePageVo> records = result.getRecords();
+
+        for (RoomRulePageVo record : records) {
+            String[] ruleArray = record.getRule().split(",");
+            List<String> ruleList = Arrays.asList(ruleArray);
+            int houseNumber = 0;
+            if(ruleList.contains("1")){
+                houseNumber  = houseNumber + 1;
+            }
+            if(ruleList.contains("2")){
+                houseNumber  = houseNumber + 1;
+            }
+            if(ruleList.contains("3")){
+                houseNumber  = houseNumber + 2;
+            }
+            record.setHouseNumber(houseNumber + "位");
+        }
+        return result;
+    }
+
+    /**
+     * 绑定楼栋
+     * @param dto
+     * @return
+     */
+    @Override
+    public Boolean bindBuilds(AddRoomRuleItemDto dto) {
+        //先清空之前的数据
+        roomRuleRoomRuleItemMapper.delete(new QueryWrapper<RoomRuleItem>().lambda().eq(RoomRuleItem::getRoomRuleId, dto.getRoomRuleId()));
+        //再插入最新传入的楼栋
+        Integer itemMaxSortCode = roomRuleRoomRuleMapper.getItemMaxSortCode();
+        for (Long buildId : dto.getOfficeBuildIds()) {
+            RoomRuleItem roomRuleItem = new RoomRuleItem();
+            itemMaxSortCode ++;
+            roomRuleItem.setSortCode(itemMaxSortCode);
+            roomRuleItem.setRoomRuleId(dto.getRoomRuleId());
+            roomRuleItem.setOfficeBuildId(buildId);
+
+            roomRuleRoomRuleItemMapper.insert(roomRuleItem);
+        }
+        return true;
+    }
+}

+ 0 - 1
src/main/java/com/xjrsoft/module/room/service/impl/RoomTeacherAppointServiceImpl.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.module.room.dto.AddRoomTeacherAppointDto;
 import com.xjrsoft.module.room.dto.RoomTeacherAppointPageDto;
 import com.xjrsoft.module.room.entity.RoomTeacherAppoint;

+ 6 - 22
src/main/java/com/xjrsoft/module/room/vo/AdjustBedClassPageVo.java

@@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.write.style.ContentStyle;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 
 /**
 * @title: 寝室床位分页列表出参
@@ -14,35 +16,17 @@ import lombok.Data;
 @Data
 public class AdjustBedClassPageVo {
 
-    @ContentStyle(dataFormat = 49)
-    @ApiModelProperty("学生id")
-    private String userId;
 
     @ContentStyle(dataFormat = 49)
     @ApiModelProperty("班级id")
-    private String classId;
+    private String id;
 
     @ContentStyle(dataFormat = 49)
     @ApiModelProperty("班级名称")
-    private String className;
+    private String name;
 
     @ContentStyle(dataFormat = 49)
-    @ApiModelProperty("学生名称")
-    private String studentName;
+    @ApiModelProperty("学生信息")
+    private List<AdjustBedClassStudentPageVo> studentList;
 
-    @ContentStyle(dataFormat = 49)
-    @ApiModelProperty("入住性别")
-    private String genderCn;
-
-    @ContentStyle(dataFormat = 49)
-    @ApiModelProperty("楼栋名称")
-    private String buildName;
-
-    @ContentStyle(dataFormat = 49)
-    @ApiModelProperty("寝室名称")
-    private String roomName;
-
-    @ContentStyle(dataFormat = 49)
-    @ApiModelProperty("床位")
-    private String bedNumber;
 }

+ 51 - 0
src/main/java/com/xjrsoft/module/room/vo/AdjustBedClassStudentPageVo.java

@@ -0,0 +1,51 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+* @title: 寝室床位分页列表出参
+* @Author dzx
+* @Date: 2023-12-27
+* @Version 1.0
+*/
+@Data
+public class AdjustBedClassStudentPageVo {
+
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("班级id")
+    private String classId;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("班级名称")
+    private String className;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("学生id")
+    private String userId;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("学生名称")
+    private String studentName;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("入住性别")
+    private String genderCn;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("楼栋名称")
+    private String buildName;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("寝室名称")
+    private String roomName;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("床位")
+    private String bedNumber;
+}

+ 5 - 1
src/main/java/com/xjrsoft/module/room/vo/AdjustBedStudentPageVo.java

@@ -39,9 +39,13 @@ public class AdjustBedStudentPageVo {
     private String studentName;
 
     @ContentStyle(dataFormat = 49)
-    @ApiModelProperty("寝室长id(null即为未设置寝室长,非空即为设置了寝室长)")
+    @ApiModelProperty("学生id(null即为未设置寝室长,非空即为设置了寝室长)")
     private String studentUserId;
 
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("寝室长id(null即为未设置寝室长,非空即为设置了寝室长)")
+    private String studentAppointId;
+
     @ContentStyle(dataFormat = 49)
     @ApiModelProperty("是否是混合寝室【一个寝室有多个班级的学生】(1:是 0:否)")
     private Integer isMax;

+ 81 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordPageVo.java

@@ -0,0 +1,81 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.github.yulichang.annotation.EntityMapping;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 查寝记录分页列表出参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomBedCheckRecordPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 填写人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("填写人")
+    @ApiModelProperty("填写人")
+    private Long userId;
+    /**
+    * 班级编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级编号")
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 查寝时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("查寝时间")
+    @ApiModelProperty("查寝时间")
+    private Date checkRecordTime;
+    /**
+    * 情况
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("情况")
+    @ApiModelProperty("情况")
+    private String condition;
+    /**
+    * 备注
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("附件文件id")
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+
+    /**
+     * roomBedCheckRecordRelation
+     */
+    @ApiModelProperty("roomBedCheckRecordRelation子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "roomBedCheckRecordId")
+    private List<RoomBedCheckRecordRelation> roomBedCheckRecordRelationList;
+
+}

+ 59 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordRelationVo.java

@@ -0,0 +1,59 @@
+package com.xjrsoft.module.room.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 查寝记录(关联寝室)表单出参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomBedCheckRecordRelationVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 查寝记录编号(room_bed_check_record)
+    */
+    @ApiModelProperty("查寝记录编号(room_bed_check_record)")
+    private Long roomBedCheckRecordId;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 楼栋(base_office_build)
+    */
+    @ApiModelProperty("楼栋(base_office_build)")
+    private String officeBuildId;
+    /**
+    * 楼层
+    */
+    @ApiModelProperty("楼层")
+    private Integer floorNumber;
+    /**
+    * 寝室名称
+    */
+    @ApiModelProperty("寝室名称")
+    private String roomName;
+
+
+
+}

+ 70 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordVo.java

@@ -0,0 +1,70 @@
+package com.xjrsoft.module.room.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+
+/**
+* @title: 查寝记录表单出参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomBedCheckRecordVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 填写人
+    */
+    @ApiModelProperty("填写人")
+    private Long userId;
+    /**
+    * 班级编号
+    */
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 查寝时间
+    */
+    @ApiModelProperty("查寝时间")
+    private Date checkRecordTime;
+    /**
+    * 情况
+    */
+    @ApiModelProperty("情况")
+    private String condition;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+
+
+    /**
+    * roomBedCheckRecordRelation
+    */
+    @ApiModelProperty("roomBedCheckRecordRelation子表")
+    private List<RoomBedCheckRecordRelationVo> roomBedCheckRecordRelationList;
+
+}

+ 0 - 6
src/main/java/com/xjrsoft/module/room/vo/RoomBedVo.java

@@ -3,12 +3,6 @@ package com.xjrsoft.module.room.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Date;
-
 /**
 * @title: 寝室床位表单出参
 * @Author dzx

+ 38 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomRuleItemVo.java

@@ -0,0 +1,38 @@
+package com.xjrsoft.module.room.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 寝室生成规则项表单出参
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomRuleItemVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 寝室生成规则编号(room_rule)
+    */
+    @ApiModelProperty("寝室生成规则编号(room_rule)")
+    private Long roomRuleId;
+    /**
+    * 楼栋(base_office_build)
+    */
+    @ApiModelProperty("楼栋(base_office_build)")
+    private Long officeBuildId;
+
+
+
+}

+ 46 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomRulePageVo.java

@@ -0,0 +1,46 @@
+package com.xjrsoft.module.room.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 寝室生成规则分页列表出参
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomRulePageVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 规则配置(多个规则用逗号隔开)
+    */
+    @ApiModelProperty("规则配置(多个规则用逗号隔开)")
+    private String rule;
+    /**
+    * 绑定楼栋
+    */
+    @ApiModelProperty("绑定楼栋")
+    private String buildNames;
+
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty("门牌号")
+    private String houseNumber;
+}

+ 55 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomRuleVo.java

@@ -0,0 +1,55 @@
+package com.xjrsoft.module.room.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 寝室生成规则表单出参
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class RoomRuleVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 楼层
+    */
+    @ApiModelProperty("楼层")
+    private Integer floorNumber;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 规则配置(多个规则用逗号隔开)
+    */
+    @ApiModelProperty("规则配置(多个规则用逗号隔开)")
+    private String rule;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+    /**
+    * roomRuleItem
+    */
+    @ApiModelProperty("roomRuleItem子表")
+    private List<RoomRuleItemVo> roomRuleItemList;
+
+}

+ 0 - 10
src/main/java/com/xjrsoft/module/room/vo/RoomTeacherAppointPageVo.java

@@ -1,19 +1,9 @@
 package com.xjrsoft.module.room.vo;
 
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import com.xjrsoft.common.annotation.Trans;
-import com.xjrsoft.common.enums.TransType;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.Date;
-
 /**
 * @title: 宿管任命分页列表出参
 * @Author dzx

+ 0 - 6
src/main/java/com/xjrsoft/module/room/vo/RoomTeacherAppointVo.java

@@ -3,12 +3,6 @@ package com.xjrsoft.module.room.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Date;
-
 /**
 * @title: 宿管任命表单出参
 * @Author dzx

+ 0 - 6
src/main/java/com/xjrsoft/module/room/vo/RoomVo.java

@@ -3,12 +3,6 @@ package com.xjrsoft.module.room.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Date;
-
 /**
 * @title: 寝室表单出参
 * @Author dzx

+ 14 - 56
src/main/java/com/xjrsoft/module/room/vo/WfRoomStayOvernightPageVo.java

@@ -1,17 +1,10 @@
 package com.xjrsoft.module.room.vo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import com.xjrsoft.common.annotation.Trans;
-import com.xjrsoft.common.enums.TransType;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -31,61 +24,19 @@ public class WfRoomStayOvernightPageVo {
     @ApiModelProperty("主键编号")
     private String id;
     /**
-    * 创建人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建人")
-    @ApiModelProperty("创建人")
-    private Long createUserId;
-    /**
-    * 创建时间
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建时间")
-    @ApiModelProperty("创建时间")
-    private Date createDate;
-    /**
-    * 修改人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改人")
-    @ApiModelProperty("修改人")
-    private Long modifyUserId;
-    /**
-    * 修改时间
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改时间")
-    @ApiModelProperty("修改时间")
-    private Date modifyDate;
-    /**
-    * 删除标记
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("删除标记")
-    @ApiModelProperty("删除标记")
-    private Integer deleteMark;
-    /**
-    * 有效标志
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("有效标志")
-    @ApiModelProperty("有效标志")
-    private Integer enabledMark;
-    /**
-    * 序号
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("序号")
-    @ApiModelProperty("序号")
-    private Integer sortCode;
-    /**
     * 申请人
     */
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("申请人")
     @ApiModelProperty("申请人")
     private Long applicantUserId;
+    /**
+     * 申请人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private String applicantUserIdCN;
     /**
     * 班主任用户编号
     */
@@ -93,6 +44,13 @@ public class WfRoomStayOvernightPageVo {
     @ExcelProperty("班主任用户编号")
     @ApiModelProperty("班主任用户编号")
     private Long headTeacherId;
+    /**
+     * 班主任用户编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private String headTeacherIdCN;
     /**
     * 寝室编号(room)
     */

+ 29 - 2
src/main/resources/mapper/room/RoomBedMapper.xml

@@ -134,7 +134,7 @@
         ORDER BY t2.sort_code,t1.sort_code
     </select>
 
-    <select id="getClassStudetBed" resultType="com.xjrsoft.module.room.vo.AdjustBedClassPageVo">
+    <select id="getClassStudetBed" parameterType="com.xjrsoft.module.room.dto.AdjustClassPageDto" resultType="com.xjrsoft.module.room.vo.AdjustBedClassStudentPageVo">
         SELECT t1.user_id,t4.id AS class_id, t4.name AS class_name,t2.name AS student_name,REPLACE(REPLACE(t2.gender,1,'男'),2,'女') AS gender_cn,t7.name AS build_name,t6.room_name,t5.bed_number FROM base_student t1
         LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
         LEFT JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
@@ -143,16 +143,43 @@
         LEFT JOIN room t6 ON t5.room_id = t6.id
         LEFT JOIN base_office_build t7 ON t6.office_build_id = t7.id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
+        and t3.stduy_status = 'FB3002'
+        <if test="dto.gradeId != null">
+            and t4.grade_id = #{dto.gradeId}
+        </if>
+        <if test="dto.classId != null">
+            and t4.id = #{dto.classId}
+        </if>
+        <if test="dto.gender != null and dto.gender != ''">
+            and t6.gender = #{dto.gender}
+        </if>
+        <if test="dto.gender != null and dto.gender != ''">
+            and t6.gender = #{dto.gender}
+        </if>
+        <if test="dto.isDistribute != null">
+            <if test="dto.isDistribute == 1">
+                and t5.student_user_id is not null
+            </if>
+            <if test="dto.isDistribute == 0">
+                and t5.student_user_id is null
+            </if>
+        </if>
+        <if test="dto.studentName != null and dto.studentName != ''">
+            and t2.name like concat('%', #{dto.studentName}, '%')
+        </if>
     </select>
 
     <select id="getBedStudentInfo" parameterType="com.xjrsoft.module.room.dto.AdjustBedPageDto" resultType="com.xjrsoft.module.room.vo.AdjustBedStudentPageVo">
-        SELECT t1.id,t3.name AS build_name,t2.room_name,t5.name AS gender_cn,t1.bed_number,t4.name AS student_name,t6.student_user_id,t2.is_max,t2.id as room_id FROM room_bed t1
+        SELECT t1.id,t3.name AS build_name,t2.room_name,t5.name AS gender_cn,t1.bed_number,t4.name AS student_name,t4.id as student_user_id,t6.student_user_id as student_appoint_id,t2.is_max,t2.id as room_id FROM room_bed t1
         LEFT JOIN room t2 ON t1.room_id = t2.id
         LEFT JOIN base_office_build t3 ON t2.office_build_id = t3.id
         LEFT JOIN xjr_user t4 ON t1.student_user_id = t4.id
         LEFT JOIN xjr_dictionary_detail t5 ON t2.gender = t5.code AND t5.item_id = 2023000000000000004
         LEFT JOIN room_student_appoint t6 ON t6.room_bed_id = t1.id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
+        <if test="dto.isEmptyRoom != null">
+            and t2.name like concat('%', #{dto.studentName}, '%')
+        </if>
         ORDER BY t2.sort_code,t1.sort_code
     </select>
 

+ 20 - 0
src/main/resources/mapper/room/RoomRuleMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.room.mapper.RoomRuleMapper">
+    <select id="getPage" resultType="com.xjrsoft.module.room.vo.RoomRulePageVo">
+        SELECT id,sort_code,NAME,rule,(
+            SELECT GROUP_CONCAT(t2.name) FROM room_rule_item t1
+            LEFT JOIN base_office_build t2 ON t1.office_build_id = t2.id
+            WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND t1.room_rule_id = room_rule.id
+        ) AS build_names FROM room_rule WHERE delete_mark = 0 ORDER BY sort_code
+    </select>
+
+    <select id="getMaxSortCode" resultType="java.lang.Integer">
+        SELECT IFNULL(MAX(sort_code),0) FROM room_rule WHERE delete_mark = 0
+    </select>
+    <select id="getItemMaxSortCode" resultType="java.lang.Integer">
+        SELECT IFNULL(MAX(sort_code),0) FROM room_rule_item WHERE delete_mark = 0
+    </select>
+</mapper>

+ 60 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -1745,6 +1745,26 @@ public class FreeMarkerGeneratorTest {
         mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
         mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
         tableConfigs.add(mainTable);
+    }
+    @Test
+    public void gcRoomRule() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("room_rule");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        TableConfig childTable1 = new TableConfig();
+        childTable1.setTableName("room_rule_item");
+        childTable1.setIsMain(false);
+        childTable1.setPkField(GlobalConstant.DEFAULT_PK);
+        childTable1.setPkType(GlobalConstant.DEFAULT_PK_TYPE);
+        childTable1.setRelationField("room_rule_id");
+        childTable1.setRelationTableField(GlobalConstant.DEFAULT_PK);
+        tableConfigs.add(childTable1);
+
 
         ApiGenerateCodesDto params = new ApiGenerateCodesDto();
         params.setAuthor("szs");//作者名称
@@ -1760,4 +1780,44 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
+    /**
+     * 查寝记录
+     * @throws IOException
+     */
+    @Test
+    public void gcRoomBedCheckRecord() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("room_bed_check_record");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        mainTable = new TableConfig();
+        mainTable.setTableName("room_bed_check_record_relation");//init_sql中的表名
+        mainTable.setIsMain(false);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        mainTable.setRelationField("room_bed_check_record_id");//设置外键
+        mainTable.setRelationTableField(GlobalConstant.DEFAULT_PK);//设置外键
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("szs");//作者名称
+        params.setPackageName("room");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
+
+
 }