Explorar o código

"/room/wfRoomReport"寝室情况汇报接口

phoenix hai 1 ano
pai
achega
b582615592
Modificáronse 18 ficheiros con 722 adicións e 33 borrados
  1. 16 19
      src/main/java/com/xjrsoft/module/oa/controller/NewsController.java
  2. 134 0
      src/main/java/com/xjrsoft/module/room/controller/WfRoomReportController.java
  3. 63 0
      src/main/java/com/xjrsoft/module/room/dto/AddWfRoomReportDto.java
  4. 32 0
      src/main/java/com/xjrsoft/module/room/dto/UpdateWfRoomReportDto.java
  5. 44 0
      src/main/java/com/xjrsoft/module/room/dto/WfRoomReportPageDto.java
  6. 3 0
      src/main/java/com/xjrsoft/module/room/dto/WfRoomStayOvernightPageDto.java
  7. 113 0
      src/main/java/com/xjrsoft/module/room/entity/WfRoomReport.java
  8. 17 0
      src/main/java/com/xjrsoft/module/room/mapper/WfRoomReportMapper.java
  9. 17 0
      src/main/java/com/xjrsoft/module/room/service/IWfRoomReportService.java
  10. 25 0
      src/main/java/com/xjrsoft/module/room/service/impl/WfRoomReportServiceImpl.java
  11. 81 0
      src/main/java/com/xjrsoft/module/room/vo/WfRoomReportPageVo.java
  12. 89 0
      src/main/java/com/xjrsoft/module/room/vo/WfRoomReportVo.java
  13. 5 0
      src/main/java/com/xjrsoft/module/student/dto/StudentHonorsPageDto.java
  14. 19 0
      src/main/java/com/xjrsoft/module/student/service/impl/StudentHonorsServiceImpl.java
  15. 10 0
      src/main/java/com/xjrsoft/module/teacher/entity/WfTeacherleave.java
  16. 20 14
      src/main/java/com/xjrsoft/module/teacher/service/impl/WfTeacherleaveServiceImpl.java
  17. 7 0
      src/main/resources/mapper/student/StudentHonorsMapper.xml
  18. 27 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

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

@@ -5,7 +5,6 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -102,29 +101,23 @@ public class NewsController {
             RT.error("找不到此新闻!");
         }
 
-        LambdaQueryWrapper<NewsRelation> queryWrapper = new LambdaQueryWrapper<>();
+        List<NewsRelationVo> newsRelationVoList = new ArrayList<>();
+        MPJLambdaWrapper<NewsRelation> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
+                .select(NewsRelation::getId)
+                .selectAs(XjrUser::getName,NewsRelationVo::getUserName)
+                .select(NewsRelation.class, x -> VoToColumnUtil.fieldsToColumns(NewsRelationVo.class).contains(x.getProperty()))
+                .leftJoin(XjrUser.class,XjrUser::getId,NewsRelation::getUserId)
                 .eq(NewsRelation::getNewsId , id)
-                .select(NewsRelation.class, x -> VoToColumnUtil.fieldsToColumns(NewsRelation.class).contains(x.getProperty()));
-
-        List<NewsRelationVo> newsRelationVoList = new ArrayList<>();
-
+                .disableSubLogicDel();
         if(ObjectUtil.isNotNull(news.getCreateUserId()) && StpUtil.getLoginIdAsLong() == news.getCreateUserId()){
-
-            List<NewsRelation> newsRelationList = newsRelationService.list(queryWrapper);
-
-            newsRelationList.stream().forEach(element -> {
-                // 对元素进行操作
-                NewsRelationVo newsRelationVo = BeanUtil.toBean(element, NewsRelationVo.class);
-                newsRelationVoList.add(newsRelationVo);
-            });
-
-
+            newsRelationVoList = newsRelationService.selectJoinList(NewsRelationVo.class, queryWrapper);
         }else{
             queryWrapper.eq(NewsRelation::getUserId , StpUtil.getLoginIdAsLong());
-            NewsRelation newsRelation = newsRelationService.getOne(queryWrapper);
-            NewsRelationVo newsRelationVo = BeanUtil.toBean(newsRelation, NewsRelationVo.class);
-            newsRelationVoList.add(newsRelationVo);
+            NewsRelationVo newsRelationVo = newsRelationService.selectJoinOne(NewsRelationVo.class, queryWrapper);
+            if(ObjectUtil.isNotNull(newsRelationVo)){
+                newsRelationVoList.add(newsRelationVo);
+            }
         }
 
         NewsVo newsVo = BeanUtil.toBean(news, NewsVo.class);
@@ -199,6 +192,10 @@ public class NewsController {
         //将原来的修改enabled_mark改为修改status
         xjrNews.setStatus(changeNewsDto.getStatus());
         if(xjrNews.getStatus() == 2){
+            //将发布时间改为当前时间
+            xjrNews.setReleaseTime(LocalDateTime.now());
+            //将张贴时间改为当前时间
+            xjrNews.setSendStartDate(LocalDateTime.now());
             newsService.SendMessage(xjrNews.getId());
         }
 

+ 134 - 0
src/main/java/com/xjrsoft/module/room/controller/WfRoomReportController.java

@@ -0,0 +1,134 @@
+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.baomidou.mybatisplus.core.toolkit.Wrappers;
+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.utils.VoToColumnUtil;
+import com.xjrsoft.module.room.dto.AddWfRoomReportDto;
+import com.xjrsoft.module.room.dto.UpdateWfRoomReportDto;
+import com.xjrsoft.module.room.dto.WfRoomReportPageDto;
+import com.xjrsoft.module.room.entity.WfRoomReport;
+import com.xjrsoft.module.room.service.IWfRoomReportService;
+import com.xjrsoft.module.room.vo.WfRoomReportPageVo;
+import com.xjrsoft.module.room.vo.WfRoomReportVo;
+import com.xjrsoft.module.system.entity.File;
+import com.xjrsoft.module.system.service.IFileService;
+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-03
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/room" + "/wfRoomReport")
+@Api(value = "/room"  + "/wfRoomReport",tags = "寝室情况汇报代码")
+@AllArgsConstructor
+public class WfRoomReportController {
+
+
+    private final IWfRoomReportService wfRoomReportService;
+
+    private final IFileService fileService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="寝室情况汇报列表(分页)")
+    @SaCheckPermission("wfroomreport:detail")
+    public RT<PageOutput<WfRoomReportPageVo>> page(@Valid WfRoomReportPageDto dto){
+
+        MPJLambdaWrapper<WfRoomReport> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper
+                .select(WfRoomReport::getId)
+                .select("t1.`name` as applicantUserIdCN")
+                .select("t2.`name` as headTeacherIdCN")
+                .leftJoin("xjr_user t1 on t1.id = t.applicant_user_id")
+                .leftJoin("xjr_user t2 on t2.id = t.head_teacher_id")
+                .select(WfRoomReport.class,x -> VoToColumnUtil.fieldsToColumns(WfRoomReportPageVo.class).contains(x.getProperty()))
+                .disableSubLogicDel()
+                .orderByDesc(WfRoomReport::getId);
+        IPage<WfRoomReportPageVo> page = wfRoomReportService.selectJoinListPage(ConventPage.getPage(dto), WfRoomReportPageVo.class, queryWrapper);
+        PageOutput<WfRoomReportPageVo> pageOutput = ConventPage.getPageOutput(page, WfRoomReportPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询寝室情况汇报信息")
+    @SaCheckPermission("wfroomreport:detail")
+    public RT<WfRoomReportVo> info(@RequestParam Long id){
+        MPJLambdaWrapper<WfRoomReport> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper
+                .select(WfRoomReport::getId)
+                .select("t1.`name` as applicantUserIdCN")
+                .select("t2.`name` as headTeacherIdCN")
+                .leftJoin("xjr_user t1 on t1.id = t.applicant_user_id")
+                .leftJoin("xjr_user t2 on t2.id = t.head_teacher_id")
+                .select(WfRoomReport.class,x -> VoToColumnUtil.fieldsToColumns(WfRoomReportVo.class).contains(x.getProperty()))
+                .eq(WfRoomReport::getId, id)
+                .disableSubLogicDel()
+                .orderByDesc(WfRoomReport::getId);
+        WfRoomReportVo wfRoomReportVo = wfRoomReportService.selectJoinOne(WfRoomReportVo.class, queryWrapper);
+
+        if (wfRoomReportVo == null) {
+           return RT.error("找不到此数据!");
+        }
+
+        wfRoomReportVo.setFileList(fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, wfRoomReportVo.getFileId())));
+
+        return RT.ok(wfRoomReportVo);
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增寝室情况汇报")
+    @SaCheckPermission("wfroomreport:add")
+    public RT<Boolean> add(@Valid @RequestBody AddWfRoomReportDto dto){
+        WfRoomReport wfRoomReport = BeanUtil.toBean(dto, WfRoomReport.class);
+        boolean isSuccess = wfRoomReportService.save(wfRoomReport);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改寝室情况汇报")
+    @SaCheckPermission("wfroomreport:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfRoomReportDto dto){
+
+        WfRoomReport wfRoomReport = BeanUtil.toBean(dto, WfRoomReport.class);
+        return RT.ok(wfRoomReportService.updateById(wfRoomReport));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除寝室情况汇报")
+    @SaCheckPermission("wfroomreport:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfRoomReportService.removeBatchByIds(ids));
+
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid WfRoomReportPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<WfRoomReportPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<WfRoomReportPageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, WfRoomReportPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "WfRoomReport" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 63 - 0
src/main/java/com/xjrsoft/module/room/dto/AddWfRoomReportDto.java

@@ -0,0 +1,63 @@
+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-03
+* @Version 1.0
+*/
+@Data
+public class AddWfRoomReportDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/room/dto/UpdateWfRoomReportDto.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.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 寝室情况汇报
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+public class UpdateWfRoomReportDto extends AddWfRoomReportDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 44 - 0
src/main/java/com/xjrsoft/module/room/dto/WfRoomReportPageDto.java

@@ -0,0 +1,44 @@
+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;
+
+
+/**
+* @title: 寝室情况汇报分页查询入参
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WfRoomReportPageDto extends PageInput {
+    /**
+     * 申请人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+
+    /**
+     * 班主任用户编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+     * 寝室+床位名称
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室+床位名称")
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+
+
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/room/dto/WfRoomStayOvernightPageDto.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.room.dto;
 
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -47,6 +48,7 @@ public class WfRoomStayOvernightPageDto extends PageInput {
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("开始时间")
     @ApiModelProperty("开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startTime;
     /**
      * 结束时间
@@ -54,5 +56,6 @@ public class WfRoomStayOvernightPageDto extends PageInput {
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("结束时间")
     @ApiModelProperty("结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endTime;
 }

+ 113 - 0
src/main/java/com/xjrsoft/module/room/entity/WfRoomReport.java

@@ -0,0 +1,113 @@
+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-03
+* @Version 1.0
+*/
+@Data
+@TableName("wf_room_report")
+@ApiModel(value = "wf_room_report", description = "寝室情况汇报")
+public class WfRoomReport 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 applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/room/mapper/WfRoomReportMapper.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.WfRoomReport;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 寝室情况汇报
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Mapper
+public interface WfRoomReportMapper extends MPJBaseMapper<WfRoomReport> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/room/service/IWfRoomReportService.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.room.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.room.entity.WfRoomReport;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 寝室情况汇报
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+
+public interface IWfRoomReportService extends MPJBaseService<WfRoomReport> {
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/room/service/impl/WfRoomReportServiceImpl.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.room.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.room.entity.WfRoomReport;
+import com.xjrsoft.module.room.mapper.WfRoomReportMapper;
+import com.xjrsoft.module.room.service.IWfRoomReportService;
+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;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 寝室情况汇报
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class WfRoomReportServiceImpl extends MPJBaseServiceImpl<WfRoomReportMapper, WfRoomReport> implements IWfRoomReportService {
+}

+ 81 - 0
src/main/java/com/xjrsoft/module/room/vo/WfRoomReportPageVo.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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 寝室情况汇报分页列表出参
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+public class WfRoomReportPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 申请人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+     * 申请人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private String applicantUserIdCN;
+    /**
+    * 班主任用户编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+     * 班主任用户编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private String headTeacherIdCN;
+    /**
+    * 寝室+床位名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室+床位名称")
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 备注
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("附件文件id")
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("状态(1:结束 0:未结束)")
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+}

+ 89 - 0
src/main/java/com/xjrsoft/module/room/vo/WfRoomReportVo.java

@@ -0,0 +1,89 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.xjrsoft.module.system.entity.File;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+* @title: 寝室情况汇报表单出参
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+public class WfRoomReportVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+     * 申请人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+     * 申请人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private String applicantUserIdCN;
+    /**
+     * 班主任用户编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+     * 班主任用户编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private String headTeacherIdCN;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 附件文件id
+    */
+    @ApiModelProperty("附件文件id")
+    private Long fileId;
+
+    /**
+     * 附件文件
+     */
+    @ApiModelProperty("附件文件")
+    private List<File> fileList;
+
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+
+
+}

+ 5 - 0
src/main/java/com/xjrsoft/module/student/dto/StudentHonorsPageDto.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 
 /**
 * @title: 学生荣誉分页查询入参
@@ -19,6 +21,9 @@ public class StudentHonorsPageDto extends PageInput {
     @ApiModelProperty("班级id")
     public Long classId;
 
+    @ApiModelProperty(value = "当前用户所管理的班级", hidden = true)
+    public List<Long> classIdList;
+
     @ApiModelProperty("学期Id")
     private Long baseSemesterId;
 }

+ 19 - 0
src/main/java/com/xjrsoft/module/student/service/impl/StudentHonorsServiceImpl.java

@@ -1,9 +1,13 @@
 package com.xjrsoft.module.student.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.student.dto.StudentHonorsPageDto;
 import com.xjrsoft.module.student.entity.StudentHonors;
 import com.xjrsoft.module.student.mapper.StudentHonorsMapper;
@@ -16,6 +20,7 @@ import com.xjrsoft.module.system.service.IFileService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -29,8 +34,22 @@ import java.util.List;
 public class StudentHonorsServiceImpl extends MPJBaseServiceImpl<StudentHonorsMapper, StudentHonors> implements IStudentHonorsService {
     private final StudentHonorsMapper studentHonorsMapper;
     private final IFileService fileService;
+
+    private final BaseClassMapper baseClassMapper;
     @Override
     public Page<StudentHonorsPageVo> getPage(Page<StudentHonorsPageDto> page, StudentHonorsPageDto dto) {
+        //获取当前用户所管理的班级
+        LambdaQueryWrapper<BaseClass> queryWrapperClass = new LambdaQueryWrapper<>();
+        queryWrapperClass
+                .eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong());
+        List<BaseClass> baseClassList = baseClassMapper.selectList(queryWrapperClass);
+        List<Long> classIdList = new ArrayList<>();
+        if(baseClassList != null && baseClassList.size() > 0){
+            for (BaseClass baseClass : baseClassList) {
+                classIdList.add(baseClass.getId());
+            }
+            dto.setClassIdList(classIdList);
+        }
         return studentHonorsMapper.getPage(page, dto);
     }
 

+ 10 - 0
src/main/java/com/xjrsoft/module/teacher/entity/WfTeacherleave.java

@@ -49,6 +49,16 @@ public class WfTeacherleave implements Serializable {
     */
     @ApiModelProperty("是否班主任")
     private String isItAHomeroomTeacher;
+    /**
+     *替班班主任
+     */
+    @ApiModelProperty("替班班主任")
+    private Long reliefHomerooTeacherId;
+    /**
+     *替班教师
+     */
+    @ApiModelProperty("替班教师")
+    private Long reliefTeacherId;
     /**
     * 请假事由
     */

+ 20 - 14
src/main/java/com/xjrsoft/module/teacher/service/impl/WfTeacherleaveServiceImpl.java

@@ -63,21 +63,27 @@ public class WfTeacherleaveServiceImpl extends MPJBaseServiceImpl<WfTeacherleave
                 if (dayOfWeekValue > 0 && dayOfWeekValue < 5
                         && startTime.compareTo(forenoonStartDateTime) < 0
                         && endTime.compareTo(forenoonEndDateTime) > 0) {
-                    WfHeadTeacherLeave wfHeadTeacherLeave = new WfHeadTeacherLeave();
 
-                    wfHeadTeacherLeave.setWfTeacherleaveId(wfTeacherleave.getId());
-                    wfHeadTeacherLeave.setApplicantUserId(Long.valueOf(wfTeacherleave.getUserId()));
-                    wfHeadTeacherLeave.setLeaveReason(LeaveReasonEnum.LeaveReason2.getCode());
-                    Instant startTimeInstant = startTime.atZone(ZoneId.systemDefault()).toInstant();
-                    Date startTimeDate = Date.from(startTimeInstant);
-                    wfHeadTeacherLeave.setStartTime(startTimeDate);
-                    Instant endTimeInstant = endTime.atZone(ZoneId.systemDefault()).toInstant();
-                    Date endTimeDate = Date.from(endTimeInstant);
-                    wfHeadTeacherLeave.setEndTime(endTimeDate);
-                    wfHeadTeacherLeave.setRemark(wfTeacherleave.getReasonForLeave());
-                    wfHeadTeacherLeave.setStatus(1);
-
-                    wfHeadTeacherLeaveList.add(wfHeadTeacherLeave);
+                    wfHeadTeacherLeaveList.add(new WfHeadTeacherLeave(){{
+                        setWfTeacherleaveId(wfTeacherleave.getId());
+                        setApplicantUserId(Long.valueOf(wfTeacherleave.getUserId()));
+                        setLeaveReason(LeaveReasonEnum.LeaveReason2.getCode());
+                        Instant startTimeInstant = startTime.atZone(ZoneId.systemDefault()).toInstant();
+                        Date startTimeDate = Date.from(startTimeInstant);
+                        setStartTime(startTimeDate);
+                        Instant endTimeInstant = endTime.atZone(ZoneId.systemDefault()).toInstant();
+                        Date endTimeDate = Date.from(endTimeInstant);
+                        setEndTime(endTimeDate);
+                        setRemark(wfTeacherleave.getReasonForLeave());
+                        setStatus(1);
+                        if(wfTeacherleave.getLeaveDays() <= 1){
+                            setSubstituteUserId(wfTeacherleave.getReliefHomerooTeacherId());
+                        }
+                        if(wfTeacherleave.getLeaveDays() > 1){
+                            setSubstituteUserId(wfTeacherleave.getReliefTeacherId());
+                        }
+
+                    }});
                 }
                 /*
                  * 当天是在星期五,

+ 7 - 0
src/main/resources/mapper/student/StudentHonorsMapper.xml

@@ -11,6 +11,13 @@
         LEFT JOIN xjr_dictionary_detail t4 ON t1.honors_type = t4.code AND t4.item_id = 1731577666295418881
         LEFT JOIN xjr_dictionary_detail t5 ON t1.honors_grade = t5.code AND t5.item_id = 1731577201793028098
         WHERE t1.delete_mark = 0
+        <if test="dto.classIdList != null">
+            and t1.class_id in
+            <foreach item="classId" index="index" collection="dto.classIdList" open="(" close=")"
+                     separator=",">
+                #{classId}
+            </foreach>
+        </if>
           <if test="dto.classId != null and dto.classId > 0">
               AND t1.class_id = #{dto.classId}
           </if>

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

@@ -1873,6 +1873,33 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
     }
 
+    /**
+     * 寝室情况汇报
+     * @throws IOException
+     */
+    @Test
+    public void gcWfRoomReport() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("wf_room_report");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        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);
+    }
 }