Browse Source

分配床位-班级列表调整

dzx 1 year ago
parent
commit
df67296249

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

@@ -9,12 +9,12 @@ 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.AddRoomBedDto;
-import com.xjrsoft.module.room.dto.RoomBedClassPageDto;
+import com.xjrsoft.module.room.dto.DistributeClassPageDto;
 import com.xjrsoft.module.room.dto.RoomBedPageDto;
 import com.xjrsoft.module.room.dto.UpdateRoomBedDto;
 import com.xjrsoft.module.room.entity.RoomBed;
 import com.xjrsoft.module.room.service.IRoomBedService;
-import com.xjrsoft.module.room.vo.RoomBedClassPageVo;
+import com.xjrsoft.module.room.vo.DistributeClassPageVo;
 import com.xjrsoft.module.room.vo.RoomBedPageVo;
 import com.xjrsoft.module.room.vo.RoomBedVo;
 import io.swagger.annotations.Api;
@@ -65,9 +65,9 @@ public class RoomBedController {
     @GetMapping(value = "/distribute-class-page")
     @ApiOperation(value="分配床位班级列表(分页)")
     @SaCheckPermission("roombedrecord:detail")
-    public RT<PageOutput<RoomBedClassPageVo>> distributeClassPage(@Valid RoomBedClassPageDto dto){
-        Page<RoomBedClassPageVo> page = roomBedService.getClassInfo(new Page<>(dto.getLimit(), dto.getSize()), dto);
-        PageOutput<RoomBedClassPageVo> pageOutput = ConventPage.getPageOutput(page, RoomBedClassPageVo.class);
+    public RT<PageOutput<DistributeClassPageVo>> distributeClassPage(@Valid DistributeClassPageDto dto){
+        Page<DistributeClassPageVo> page = roomBedService.getDistributeClassInfo(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<DistributeClassPageVo> pageOutput = ConventPage.getPageOutput(page, DistributeClassPageVo.class);
         return RT.ok(pageOutput);
     }
 

+ 1 - 1
src/main/java/com/xjrsoft/module/room/dto/RoomBedClassPageDto.java → src/main/java/com/xjrsoft/module/room/dto/DistributeClassPageDto.java

@@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode;
 */
 @Data
 @EqualsAndHashCode(callSuper = false)
-public class RoomBedClassPageDto extends PageInput {
+public class DistributeClassPageDto extends PageInput {
 
     @ApiModelProperty("楼栋id")
     public Long officeBuildId;

+ 43 - 0
src/main/java/com/xjrsoft/module/room/dto/DistributeRoomBedPageDto.java

@@ -0,0 +1,43 @@
+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 DistributeRoomBedPageDto extends PageInput {
+
+    @ApiModelProperty("楼栋id")
+    public Long officeBuildId;
+
+    @ApiModelProperty("楼层")
+    public Integer floorNumber;
+
+
+    @ApiModelProperty("寝室id")
+    public Long roomId;
+
+    @ApiModelProperty("入住性别")
+    public String gender;
+
+    @ApiModelProperty("寝室id")
+    public Long gradeId;
+
+    @ApiModelProperty("年级id")
+    public Long classId;
+
+    @ApiModelProperty("寝室id")
+    public String studentName;
+
+    @ApiModelProperty("学号")
+    public String studentId;
+}

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

@@ -2,10 +2,10 @@ 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.RoomBedClassPageDto;
+import com.xjrsoft.module.room.dto.DistributeClassPageDto;
 import com.xjrsoft.module.room.dto.RoomBedPageDto;
 import com.xjrsoft.module.room.entity.RoomBed;
-import com.xjrsoft.module.room.vo.RoomBedClassPageVo;
+import com.xjrsoft.module.room.vo.DistributeClassPageVo;
 import com.xjrsoft.module.room.vo.RoomBedPageVo;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -31,5 +31,5 @@ public interface RoomBedMapper extends MPJBaseMapper<RoomBed> {
      */
     Page<RoomBedPageVo> getPage(Page<RoomBedPageVo> page, RoomBedPageDto dto);
 
-    Page<RoomBedClassPageVo> getClassInfo(Page<RoomBedClassPageVo> page, RoomBedClassPageDto dto);
+    Page<DistributeClassPageVo> getDistributeClassInfo(Page<DistributeClassPageVo> page, DistributeClassPageDto dto);
 }

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

@@ -2,10 +2,10 @@ 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.RoomBedClassPageDto;
+import com.xjrsoft.module.room.dto.DistributeClassPageDto;
 import com.xjrsoft.module.room.dto.RoomBedPageDto;
 import com.xjrsoft.module.room.entity.RoomBed;
-import com.xjrsoft.module.room.vo.RoomBedClassPageVo;
+import com.xjrsoft.module.room.vo.DistributeClassPageVo;
 import com.xjrsoft.module.room.vo.RoomBedPageVo;
 
 import java.util.List;
@@ -30,5 +30,5 @@ public interface IRoomBedService extends MPJBaseService<RoomBed> {
 
     Boolean clearStudentInfo(List<Long> ids);
 
-    Page<RoomBedClassPageVo> getClassInfo(Page<RoomBedClassPageVo> page, RoomBedClassPageDto dto);
+    Page<DistributeClassPageVo> getDistributeClassInfo(Page<DistributeClassPageVo> page, DistributeClassPageDto dto);
 }

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

@@ -2,12 +2,12 @@ package com.xjrsoft.module.room.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.xjrsoft.module.room.dto.RoomBedClassPageDto;
+import com.xjrsoft.module.room.dto.DistributeClassPageDto;
 import com.xjrsoft.module.room.dto.RoomBedPageDto;
 import com.xjrsoft.module.room.entity.RoomBed;
 import com.xjrsoft.module.room.mapper.RoomBedMapper;
 import com.xjrsoft.module.room.service.IRoomBedService;
-import com.xjrsoft.module.room.vo.RoomBedClassPageVo;
+import com.xjrsoft.module.room.vo.DistributeClassPageVo;
 import com.xjrsoft.module.room.vo.RoomBedPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -41,7 +41,7 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
     }
 
     @Override
-    public Page<RoomBedClassPageVo> getClassInfo(Page<RoomBedClassPageVo> page, RoomBedClassPageDto dto) {
-        return roomBedMapper.getClassInfo(page, dto);
+    public Page<DistributeClassPageVo> getDistributeClassInfo(Page<DistributeClassPageVo> page, DistributeClassPageDto dto) {
+        return roomBedMapper.getDistributeClassInfo(page, dto);
     }
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/room/vo/RoomBedClassPageVo.java → src/main/java/com/xjrsoft/module/room/vo/DistributeClassPageVo.java

@@ -12,7 +12,7 @@ import lombok.Data;
 * @Version 1.0
 */
 @Data
-public class RoomBedClassPageVo {
+public class DistributeClassPageVo {
 
     /**
     * 主键编号

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

@@ -0,0 +1,55 @@
+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 dzx
+* @Date: 2023-12-27
+* @Version 1.0
+*/
+@Data
+public class DistributeRoomBedPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
+    @ApiModelProperty("主键编号")
+    private String id;
+
+    /**
+     * 楼栋名称
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("年级")
+    @ApiModelProperty("年级")
+    private String gradeName;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("专业部")
+    @ApiModelProperty("专业部")
+    private String orgName;
+
+    /**
+     * 班级名称
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级名称")
+    @ApiModelProperty("班级名称")
+    private String className;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("需要住宿人数")
+    @ApiModelProperty("需要住宿人数")
+    private Integer needCount;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("已分配床位数")
+    @ApiModelProperty("已分配床位数")
+    private Integer distributeCount;
+}

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

@@ -5,7 +5,7 @@
 <mapper namespace="com.xjrsoft.module.room.mapper.RoomBedMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.room.dto.RoomBedPageDto" resultType="com.xjrsoft.module.room.vo.RoomBedPageVo">
         SELECT t1.id,t1.sort_code,t3.name AS build_name,t2.floor_number,t2.room_name,t1.bed_number,t4.name AS student_name,t5.student_id,
-        t4.mobile,t2.gender as gender_cn,t7.name AS grade_name,t8.name AS class_name FROM room_bed t1
+        t4.mobile,t9.name as gender_cn,t7.name AS grade_name,t8.name AS class_name 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
@@ -13,6 +13,7 @@
         LEFT JOIN base_student_school_roll t6 ON t1.student_user_id = t6.user_id
         LEFT JOIN base_grade t7 ON t6.grade_id = t7.id
         LEFT JOIN base_class t8 ON t6.class_id = t8.id
+        LEFT JOIN xjr_dictionary_detail t9 ON t1.gender = t9.code AND t9.item_id = 2023000000000000004
         <if test="dto.officeBuildId != null">
             and t2.office_build_id = #{dto.officeBuildId}
         </if>
@@ -43,7 +44,7 @@
         SELECT IFNULL(MAX(sort_code),0) FROM room_bed WHERE delete_mark = 0
     </select>
 
-    <select id="getClassInfo" parameterType="com.xjrsoft.module.room.dto.RoomBedClassPageDto" resultType="com.xjrsoft.module.room.vo.RoomBedClassPageVo">
+    <select id="getDistributeClassInfo" parameterType="com.xjrsoft.module.room.dto.DistributeClassPageDto" resultType="com.xjrsoft.module.room.vo.DistributeClassPageVo">
         SELECT t1.id,t2.name AS grade_name,t3.name AS org_name,t1.name AS class_name,
         (SELECT COUNT(*) FROM base_student c1
         LEFT JOIN base_student_school_roll c2 ON c1.user_id = c2.user_id
@@ -59,4 +60,23 @@
         LEFT JOIN xjr_department t3 ON t1.org_id = t3.id
         WHERE t1.delete_mark = 0
     </select>
+    <select id="getDistributeRoomBedInfo" parameterType="com.xjrsoft.module.room.dto.DistributeClassPageDto" resultType="com.xjrsoft.module.room.vo.DistributeRoomBedPageVo">
+        SELECT t1.id,t1.sort_code,t2.name AS build_name,t1.room_name,t4.name AS gender_cn, t3.name AS check_in_status_cn,
+        t1.bed_count,(
+        SELECT COUNT(*) FROM room_bed
+        WHERE delete_mark = 0 AND room_id = t1.id
+        AND student_user_id IS NOT NULL
+        ) AS into_count,(
+        SELECT GROUP_CONCAT(c3.name) FROM room_bed c1
+        LEFT JOIN base_student_school_roll c2 ON c1.student_user_id = c2.user_id
+        LEFT JOIN base_class c3 ON c2.class_id = c3.id
+        WHERE c1.delete_mark = 0 AND c1.room_id = t1.id
+        AND c1.student_user_id IS NOT NULL GROUP BY c3.id
+        ) AS into_class FROM room t1
+        LEFT JOIN base_office_build t2 ON t1.office_build_id = t2.id
+        LEFT JOIN xjr_dictionary_detail t3 ON t1.check_in_status = t3.code AND t3.item_id = 1739843696019435521
+        LEFT JOIN xjr_dictionary_detail t4 ON t1.gender = t4.code AND t4.item_id = 2023000000000000004
+        WHERE t1.delete_mark = 0 ORDER BY t1.sort_code
+
+    </select>
 </mapper>

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

@@ -1529,4 +1529,33 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+    /**
+     * 寝室维护
+     * @throws IOException
+     */
+    @Test
+    public void gcRoomBedRecord() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("room_bed_record");//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);
+    }
+
 }