Bladeren bron

寝室床位导出实现

dzx 1 jaar geleden
bovenliggende
commit
c6257940e4

+ 2 - 1
src/main/java/com/xjrsoft/module/room/controller/RoomController.java

@@ -13,6 +13,7 @@ import com.xjrsoft.module.room.dto.RoomPageDto;
 import com.xjrsoft.module.room.dto.UpdateRoomDto;
 import com.xjrsoft.module.room.entity.Room;
 import com.xjrsoft.module.room.service.IRoomService;
+import com.xjrsoft.module.room.vo.RoomExcelVo;
 import com.xjrsoft.module.room.vo.RoomPageVo;
 import com.xjrsoft.module.room.vo.RoomVo;
 import io.swagger.annotations.Api;
@@ -115,7 +116,7 @@ public class RoomController {
     @GetMapping("/export")
     @ApiOperation(value = "导出")
     public ResponseEntity<byte[]> exportData(@Valid RoomPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
-        List<RoomPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<RoomPageVo>) page(dto).getData()).getList();
+        List<RoomExcelVo> customerList = roomService.getList(dto);
         ByteArrayOutputStream bot = new ByteArrayOutputStream();
         EasyExcel.write(bot, RoomPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
 

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

@@ -6,8 +6,10 @@ import com.xjrsoft.module.room.dto.AddRoomDto;
 import com.xjrsoft.module.room.dto.RoomPageDto;
 import com.xjrsoft.module.room.entity.Room;
 import com.xjrsoft.module.room.vo.RoomClassCountVo;
+import com.xjrsoft.module.room.vo.RoomExcelVo;
 import com.xjrsoft.module.room.vo.RoomPageVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -27,7 +29,7 @@ public interface RoomMapper extends MPJBaseMapper<Room> {
      */
     Page<RoomPageVo> getPage(Page<RoomPageDto> page, RoomPageDto dto);
 
-
+    List<RoomExcelVo> getList(@Param("dto") RoomPageDto dto);
     /**
      * 批量添加
      */

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

@@ -5,8 +5,11 @@ import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.room.dto.AddRoomDto;
 import com.xjrsoft.module.room.dto.RoomPageDto;
 import com.xjrsoft.module.room.entity.Room;
+import com.xjrsoft.module.room.vo.RoomExcelVo;
 import com.xjrsoft.module.room.vo.RoomPageVo;
 
+import java.util.List;
+
 /**
 * @title: 寝室
 * @Author dzx
@@ -24,6 +27,8 @@ public interface IRoomService extends MPJBaseService<Room> {
      */
     Page<RoomPageVo> getPage(Page<RoomPageDto> page, RoomPageDto dto);
 
+    List<RoomExcelVo> getList(RoomPageDto dto);
+
     /**
      * 批量添加
      */

+ 6 - 0
src/main/java/com/xjrsoft/module/room/service/impl/RoomServiceImpl.java

@@ -18,6 +18,7 @@ import com.xjrsoft.module.room.mapper.RoomBedMapper;
 import com.xjrsoft.module.room.mapper.RoomMapper;
 import com.xjrsoft.module.room.mapper.RoomRuleMapper;
 import com.xjrsoft.module.room.service.IRoomService;
+import com.xjrsoft.module.room.vo.RoomExcelVo;
 import com.xjrsoft.module.room.vo.RoomPageVo;
 import com.xjrsoft.module.student.entity.BaseStudent;
 import lombok.AllArgsConstructor;
@@ -47,6 +48,11 @@ public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implem
         return result;
     }
 
+    @Override
+    public List<RoomExcelVo> getList(RoomPageDto dto) {
+        return roomMapper.getList(dto);
+    }
+
     @Override
     public String saveBatch(AddRoomDto dto) {
         MPJLambdaWrapper<RoomRule> queryWrapper = new MPJLambdaWrapper<>();

+ 97 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomExcelVo.java

@@ -0,0 +1,97 @@
+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 RoomExcelVo {
+
+    /**
+    * 序号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("序号")
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 楼栋(base_office_build)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("楼栋名称")
+    @ApiModelProperty("楼栋名称")
+    private String bulidName;
+    /**
+    * 楼层
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("楼层")
+    @ApiModelProperty("楼层")
+    private Integer floorNumber;
+    /**
+    * 寝室名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室名称")
+    @ApiModelProperty("寝室名称")
+    private String roomName;
+    /**
+    * 入住身份
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("入住身份")
+    @ApiModelProperty("入住身份")
+    private String checkInStatusCn;
+    /**
+    * 入住性别(xjr_dictionary_item[gender])
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("入住性别")
+    @ApiModelProperty("入住性别")
+    private String genderCn;
+    /**
+    * 床位数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("床位数")
+    @ApiModelProperty("床位数")
+    private Integer bedCount;
+
+    /**
+     * 寝室长
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室长")
+    @ApiModelProperty("寝室长")
+    private String studentAppointNames;
+
+    /**
+     * 寝室长
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("宿管")
+    @ApiModelProperty("宿管")
+    private String teacherAppointNames;
+
+    /**
+    * 是否是混合寝室【一个寝室有多个班级的学生】(1:是 0:否)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("是否是混合寝室")
+    @ApiModelProperty("是否是混合寝室")
+    private Integer isMax;
+    /**
+    * 备注
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 26 - 0
src/main/resources/mapper/room/RoomMapper.xml

@@ -29,6 +29,32 @@
         </if>
         ORDER BY t1.sort_code
     </select>
+    <select id="getList" parameterType="com.xjrsoft.module.room.dto.RoomPageDto" resultType="com.xjrsoft.module.room.vo.RoomExcelVo">
+        SELECT t1.id,t1.sort_code,t2.name AS bulid_name,t1.floor_number,t1.room_name,t3.name AS check_in_status_cn,t4.name AS gender_cn,t1.bed_count,
+        (SELECT GROUP_CONCAT(c2.name) FROM room_student_appoint c1
+        LEFT JOIN xjr_user c2 ON c1.student_user_id = c2.id
+        WHERE c1.delete_mark = 0 AND c1.room_id = t1.id) AS student_appoint_names,
+        (SELECT GROUP_CONCAT(c2.name) FROM room_teacher_appoint c1
+        LEFT JOIN xjr_user c2 ON c1.user_id = c2.id
+        WHERE c1.delete_mark = 0 AND c1.room_id = t1.id) AS teacher_appoint_names,t1.is_max,t1.remark 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
+        <if test="dto.officeBuildId != null">
+            and t1.office_build_id = #{dto.officeBuildId}
+        </if>
+        <if test="dto.floorNumber != null">
+            and t1.floor_number = #{dto.floorNumber}
+        </if>
+        <if test="dto.checkInStatus != null and dto.checkInStatus != ''">
+            and t1.check_in_status = #{dto.checkInStatus}
+        </if>
+        <if test="dto.gender != null and dto.gender != ''">
+            and t1.gender = #{dto.gender}
+        </if>
+        ORDER BY t1.sort_code
+    </select>
     <select id="getMaxSortCode" resultType="java.lang.Integer">
         SELECT IFNULL(MAX(sort_code),1) FROM room WHERE delete_mark = 0
     </select>