Browse Source

宿管员管理

dzx 1 year ago
parent
commit
9153094456

+ 94 - 0
src/main/java/com/xjrsoft/module/room/controller/RoomTeacherAppointController.java

@@ -0,0 +1,94 @@
+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.AddRoomTeacherAppointDto;
+import com.xjrsoft.module.room.dto.RoomTeacherAppointPageDto;
+import com.xjrsoft.module.room.dto.UpdateRoomTeacherAppointDto;
+import com.xjrsoft.module.room.entity.RoomTeacherAppoint;
+import com.xjrsoft.module.room.service.IRoomTeacherAppointService;
+import com.xjrsoft.module.room.vo.RoomTeacherAppointPageVo;
+import com.xjrsoft.module.room.vo.RoomTeacherAppointVo;
+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: 2023-12-29
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/room" + "/roomTeacherAppoint")
+@Api(value = "/room"  + "/roomTeacherAppoint",tags = "宿管任命代码")
+@AllArgsConstructor
+public class RoomTeacherAppointController {
+
+
+    private final IRoomTeacherAppointService roomTeacherAppointService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="宿管任命列表(分页)")
+    @SaCheckPermission("roomteacherappoint:detail")
+    public RT<PageOutput<RoomTeacherAppointPageVo>> page(@Valid RoomTeacherAppointPageDto dto){
+
+        Page<RoomTeacherAppointPageVo> page = roomTeacherAppointService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<RoomTeacherAppointPageVo> pageOutput = ConventPage.getPageOutput(page, RoomTeacherAppointPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询宿管任命信息")
+    @SaCheckPermission("roomteacherappoint:detail")
+    public RT<RoomTeacherAppointVo> info(@RequestParam Long id){
+        RoomTeacherAppoint roomTeacherAppoint = roomTeacherAppointService.getById(id);
+        if (roomTeacherAppoint == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(roomTeacherAppoint, RoomTeacherAppointVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增宿管任命")
+    @SaCheckPermission("roomteacherappoint:add")
+    public RT<Boolean> add(@Valid @RequestBody AddRoomTeacherAppointDto dto){
+        RoomTeacherAppoint roomTeacherAppoint = BeanUtil.toBean(dto, RoomTeacherAppoint.class);
+        boolean isSuccess = roomTeacherAppointService.save(roomTeacherAppoint);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改宿管任命")
+    @SaCheckPermission("roomteacherappoint:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateRoomTeacherAppointDto dto){
+
+        RoomTeacherAppoint roomTeacherAppoint = BeanUtil.toBean(dto, RoomTeacherAppoint.class);
+        return RT.ok(roomTeacherAppointService.updateById(roomTeacherAppoint));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除宿管任命")
+    @SaCheckPermission("roomteacherappoint:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(roomTeacherAppointService.removeBatchByIds(ids));
+
+    }
+}

+ 48 - 0
src/main/java/com/xjrsoft/module/room/dto/AddRoomTeacherAppointDto.java

@@ -0,0 +1,48 @@
+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 dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class AddRoomTeacherAppointDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 用户编号
+    */
+    @ApiModelProperty("用户编号")
+    private Long userId;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+}

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

@@ -0,0 +1,39 @@
+package com.xjrsoft.module.room.dto;
+
+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;
+
+
+/**
+* @title: 宿管任命分页查询入参
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RoomTeacherAppointPageDto extends PageInput {
+
+    @ApiModelProperty("楼栋(base_office_build)")
+    private Long officeBuildId;
+
+    @ApiModelProperty("楼层号")
+    private Integer floorNumber;
+
+    @ApiModelProperty("寝室号")
+    private String roomName;
+
+    @ApiModelProperty("入住性别")
+    private String gender;
+
+    @ApiModelProperty("宿管员id")
+    private Long userId;
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/room/dto/UpdateRoomTeacherAppointDto.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 dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class UpdateRoomTeacherAppointDto extends AddRoomTeacherAppointDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 103 - 0
src/main/java/com/xjrsoft/module/room/entity/RoomBedRecord.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.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 dzx
+* @Date: 2023-12-28
+* @Version 1.0
+*/
+@Data
+@TableName("room_bed_record")
+@ApiModel(value = "room_bed_record", description = "寝室床位记录")
+public class RoomBedRecord 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;
+    /**
+    * 入学年级(base_grade)
+    */
+    @ApiModelProperty("入学年级(base_grade)")
+    private Long gradeId;
+    /**
+    * 班级(base_class)
+    */
+    @ApiModelProperty("班级(base_class)")
+    private Long classId;
+    /**
+    * 需要床位号
+    */
+    @ApiModelProperty("需要床位号")
+    private Integer needBedNumber;
+    /**
+    * 分配床位数
+    */
+    @ApiModelProperty("分配床位数")
+    private Integer distributeBedNumber;
+
+
+}

+ 98 - 0
src/main/java/com/xjrsoft/module/room/entity/RoomTeacherAppoint.java

@@ -0,0 +1,98 @@
+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 dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+@TableName("room_teacher_appoint")
+@ApiModel(value = "room_teacher_appoint", description = "宿管任命")
+public class RoomTeacherAppoint 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)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 用户编号
+    */
+    @ApiModelProperty("用户编号")
+    private Long userId;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/room/mapper/RoomTeacherAppointMapper.java

@@ -0,0 +1,25 @@
+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.RoomTeacherAppointPageDto;
+import com.xjrsoft.module.room.entity.RoomTeacherAppoint;
+import com.xjrsoft.module.room.vo.RoomTeacherAppointPageVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 宿管任命
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Mapper
+public interface RoomTeacherAppointMapper extends MPJBaseMapper<RoomTeacherAppoint> {
+    /**
+     * 分页查询
+     * @param page
+     * @param dto
+     * @return
+     */
+    Page<RoomTeacherAppointPageVo> getPage(Page<RoomTeacherAppointPageVo> page, RoomTeacherAppointPageDto dto);
+}

+ 29 - 0
src/main/java/com/xjrsoft/module/room/service/IRoomTeacherAppointService.java

@@ -0,0 +1,29 @@
+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.RoomTeacherAppointPageDto;
+import com.xjrsoft.module.room.entity.RoomTeacherAppoint;
+import com.xjrsoft.module.room.vo.RoomTeacherAppointPageVo;
+
+import java.util.List;
+
+/**
+* @title: 宿管任命
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+
+public interface IRoomTeacherAppointService extends MPJBaseService<RoomTeacherAppoint> {
+
+    /**
+     * 分页查询
+     * @param page
+     * @param dto
+     * @return
+     */
+    Page<RoomTeacherAppointPageVo> getPage(Page<RoomTeacherAppointPageVo> page, RoomTeacherAppointPageDto dto);
+
+    Boolean clearAppoint(List<Long> ids);
+}

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

@@ -90,6 +90,9 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
             classDto.setGender(genderNumber);
             List<StudentInfoVo> studentList = baseStudentMapper.getClassStudent(classDto);
             for (StudentInfoVo studentInfoVo : studentList) {
+                if(i > bedInfoList.size()){
+                    continue;
+                }
                 RoomBedVo roomBedVo = bedInfoList.get(i);
                 RoomBed roomBed = BeanUtil.toBean(roomBedVo, RoomBed.class);
                 roomBed.setStudentUserId(studentInfoVo.getUserId());

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

@@ -0,0 +1,41 @@
+package com.xjrsoft.module.room.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.room.dto.RoomTeacherAppointPageDto;
+import com.xjrsoft.module.room.entity.RoomTeacherAppoint;
+import com.xjrsoft.module.room.mapper.RoomTeacherAppointMapper;
+import com.xjrsoft.module.room.service.IRoomTeacherAppointService;
+import com.xjrsoft.module.room.vo.RoomTeacherAppointPageVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+* @title: 宿管任命
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class RoomTeacherAppointServiceImpl extends MPJBaseServiceImpl<RoomTeacherAppointMapper, RoomTeacherAppoint> implements IRoomTeacherAppointService {
+    private final RoomTeacherAppointMapper roomTeacherAppointMapper;
+    @Override
+    public Page<RoomTeacherAppointPageVo> getPage(Page<RoomTeacherAppointPageVo> page, RoomTeacherAppointPageDto dto) {
+        return roomTeacherAppointMapper.getPage(page, dto);
+    }
+
+    @Override
+    public Boolean clearAppoint(List<Long> ids) {
+//        LambdaQueryWrapper<CourseTable> queryWrapper = new LambdaQueryWrapper<>();
+//        queryWrapper.eq(CourseTable::getClassId, dto.getClassId())
+//                .eq(ObjectUtil.isNotEmpty(dto.getWeeks()), CourseTable::getWeeks,dto.getWeeks());
+//        roomTeacherAppointMapper.selectList()
+        return null;
+    }
+}

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

@@ -0,0 +1,71 @@
+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
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class RoomTeacherAppointPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 序号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 楼栋名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("楼栋名称")
+    private String buildName;
+    /**
+    * 楼层
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("楼层")
+    private Integer floorNumber;
+    /**
+    * 寝室
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("寝室")
+    private String roomName;
+
+    /**
+     * 寝室
+     */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("入住性别")
+    private String genderCn;
+
+    /**
+     * 寝室
+     */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("宿管员")
+    private String appointUsers;
+
+}

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

@@ -0,0 +1,49 @@
+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
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class RoomTeacherAppointVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 用户编号
+    */
+    @ApiModelProperty("用户编号")
+    private Long userId;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+
+}

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

@@ -1587,4 +1587,33 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
     }
 
+
+    /**
+     * 宿管员管理
+     * @throws IOException
+     */
+    @Test
+    public void gcRoomTeacherAppoint() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("room_teacher_appoint");//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("dzx");//作者名称
+        params.setPackageName("room");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(true);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 }