Переглянути джерело

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

phoenix 1 рік тому
батько
коміт
02575f3ce5

+ 1 - 0
src/main/java/com/xjrsoft/module/room/dto/AdjustBedPageDto.java

@@ -34,4 +34,5 @@ public class AdjustBedPageDto extends PageInput {
     @ApiModelProperty("入住班级")
     public Long classId;
 
+
 }

+ 5 - 1
src/main/java/com/xjrsoft/module/room/mapper/RoomValueWeekItemMapper.java

@@ -8,6 +8,8 @@ import com.xjrsoft.module.room.vo.RoomValueWeekPageVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @title: 宿管值班管理(人员)
 * @Author dzx
@@ -17,7 +19,9 @@ import org.apache.ibatis.annotations.Param;
 @Mapper
 public interface RoomValueWeekItemMapper extends MPJBaseMapper<RoomValueWeekItem> {
 
-    Page<RoomValueWeekPageVo> getItemList(Page<RoomValueWeekPageDto> page, @Param("dto") RoomValueWeekPageDto dto);
+    Page<RoomValueWeekPageVo> getItemPage(Page<RoomValueWeekPageDto> page, @Param("dto") RoomValueWeekPageDto dto);
+
+    List<RoomValueWeekPageVo> getItemList(@Param("dto") RoomValueWeekPageDto dto);
 
     Integer getMaxSortCode();
 

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

@@ -45,6 +45,8 @@ public interface IRoomValueWeekService extends MPJBaseService<RoomValueWeek> {
 
     Page<RoomValueWeekPageVo> getPage(Page<RoomValueWeekPageDto> page, RoomValueWeekPageDto dto);
 
+    List<RoomValueWeek> getList(RoomValueWeekPageDto dto);
+
     Boolean updateNumberPeople();
 
     RoomValueWeekItemVo getItemInfo(Long id);

+ 9 - 1
src/main/java/com/xjrsoft/module/room/service/impl/RoomServiceImpl.java

@@ -49,7 +49,15 @@ public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implem
 
     @Override
     public List<RoomExcelVo> getList(RoomPageDto dto) {
-        return roomMapper.getList(dto);
+        List<RoomExcelVo> list = roomMapper.getList(dto);
+        for (RoomExcelVo roomExcelVo : list) {
+            if("1".equals(roomExcelVo.getIsMax())){
+                roomExcelVo.setIsMax("是");
+            }else if("2".equals(roomExcelVo.getIsMax())){
+                roomExcelVo.setIsMax("否");
+            }
+        }
+        return list;
     }
 
     @Override

+ 29 - 1
src/main/java/com/xjrsoft/module/room/service/impl/RoomValueWeekServiceImpl.java

@@ -16,6 +16,8 @@ import com.xjrsoft.module.room.mapper.RoomValueWeekItemMapper;
 import com.xjrsoft.module.room.mapper.RoomValueWeekMapper;
 import com.xjrsoft.module.room.mapper.WfRoomStayOvernightMapper;
 import com.xjrsoft.module.room.service.IRoomValueWeekService;
+import com.xjrsoft.module.room.vo.RoomValueWeekExcelVo;
+import com.xjrsoft.module.room.vo.RoomValueWeekItemExcelVo;
 import com.xjrsoft.module.room.vo.RoomValueWeekItemVo;
 import com.xjrsoft.module.room.vo.RoomValueWeekPageVo;
 import lombok.AllArgsConstructor;
@@ -25,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.text.SimpleDateFormat;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -133,11 +136,36 @@ public class RoomValueWeekServiceImpl extends MPJBaseServiceImpl<RoomValueWeekMa
 
     @Override
     public Page<RoomValueWeekPageVo> getPage(Page<RoomValueWeekPageDto> page, RoomValueWeekPageDto dto) {
-        Page<RoomValueWeekPageVo> result = roomValueWeekRoomValueWeekItemMapper.getItemList(page, dto);
+        Page<RoomValueWeekPageVo> result = roomValueWeekRoomValueWeekItemMapper.getItemPage(page, dto);
 
         return result;
     }
 
+    @Override
+    public List<RoomValueWeek> getList(RoomValueWeekPageDto dto) {
+        List<RoomValueWeek> weekList = roomValueWeekRoomValueWeekMapper.selectList(
+            new QueryWrapper<RoomValueWeek>().lambda()
+            .ge(RoomValueWeek::getEndTime, dto.getEndTime())
+            .le(RoomValueWeek::getStartTime, dto.getStartTime())
+        );
+        List<RoomValueWeekExcelVo> dataList = BeanUtil.copyToList(weekList, RoomValueWeekExcelVo.class);
+
+        List<RoomValueWeekPageVo> allItemList = roomValueWeekRoomValueWeekItemMapper.getItemList(dto);
+
+        for (RoomValueWeekExcelVo weekExcelVo : dataList) {
+            List<RoomValueWeekItemExcelVo> itemList = new ArrayList<>();
+            for (RoomValueWeekPageVo roomValueWeekPageVo : allItemList) {
+                if(roomValueWeekPageVo.getRoomValueWeekId().equals(weekExcelVo.getId())){
+                    RoomValueWeekItemExcelVo itemExcelVo = new RoomValueWeekItemExcelVo();
+                }
+            }
+        }
+
+
+
+        return null;
+    }
+
     @Override
     public Boolean updateNumberPeople() {
         Date date = new Date();

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

@@ -84,9 +84,9 @@ public class RoomExcelVo {
     * 是否是混合寝室【一个寝室有多个班级的学生】(1:是 0:否)
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("是否是混合寝室")
+    @ExcelProperty("混合寝室")
     @ApiModelProperty("是否是混合寝室")
-    private Integer isMax;
+    private String isMax;
     /**
     * 备注
     */

+ 47 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomValueWeekExcelVo.java

@@ -0,0 +1,47 @@
+package com.xjrsoft.module.room.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 宿管值班管理excel导出
+* @Author dzx
+* @Date: 2024-01-04
+* @Version 1.0
+*/
+@Data
+public class RoomValueWeekExcelVo {
+
+    /**
+     * 主键编号
+     */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+
+    /**
+     * roomValueWeekItem
+     */
+    @ApiModelProperty("roomValueWeekItem子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "roomValueWeekId")
+    private List<RoomValueWeekItemExcelVo> itemList;
+
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomValueWeekItemExcelVo.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Data;
+
+/**
+* @title: 宿管值班管理excel导出
+* @Author dzx
+* @Date: 2024-01-04
+* @Version 1.0
+*/
+@Data
+public class RoomValueWeekItemExcelVo {
+
+    @ExcelProperty(index = 0)
+    @ColumnWidth(15)
+    private String column1;
+
+    @ExcelProperty(index = 0)
+    @ColumnWidth(15)
+    private String column2;
+
+    @ExcelProperty(index = 0)
+    @ColumnWidth(15)
+    private String column3;
+
+    @ExcelProperty(index = 0)
+    @ColumnWidth(15)
+    private String column4;
+
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/room/vo/RoomValueWeekPageVo.java

@@ -82,4 +82,7 @@ public class RoomValueWeekPageVo {
     @ApiModelProperty("人数(添加时先默认统计一个进去)")
     private Integer numberPeople;
 
+    @ApiModelProperty("宿管值班管理编号(room_value_week)")
+    private Long roomValueWeekId;
+
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java

@@ -369,6 +369,10 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
         List<TextbookSubscriptionRecordVo> recordVos = textbookTextbookMapper.subscriptionList(id);
         for (TextbookSubscriptionRecordVo recordVo : recordVos) {
             if (ObjectUtil.isNull(recordVo) || StrUtil.isEmpty(recordVo.getClassIds())) {
+                recordVos.remove(recordVo);
+                if(recordVos.isEmpty()){
+                    break;
+                }
                 continue;
             }
             String[] split = recordVo.getClassIds().split(",");

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

@@ -180,9 +180,30 @@
         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
+        LEFT JOIN base_student_school_roll t7 ON t4.id = t7.user_id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
         <if test="dto.isEmptyRoom != null">
-            and t2.name like concat('%', #{dto.studentName}, '%')
+            <if test="dto.isEmptyRoom == 1">
+                and t2.bed_count = (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS NULL AND is_check_in = 0 AND room_id = t2.id)
+            </if>
+            <if test="dto.isEmptyRoom == 0">
+                and t2.bed_count != (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS NULL AND is_check_in = 0 AND room_id = t2.id)
+            </if>
+        </if>
+        <if test="dto.roomName != null">
+            and t2.room_name like concat('%', #{dto.roomName}, '%')
+        </if>
+        <if test="dto.isMax != null">
+            and t2.is_max = #{dto.isMax}
+        </if>
+        <if test="dto.floorNumber != null">
+            and t2.floor_number = #{dto.floorNumber}
+        </if>
+        <if test="dto.floorNumber != null">
+            and t2.floor_number = #{dto.floorNumber}
+        </if>
+        <if test="dto.classId != null">
+            and t7.class_id = #{dto.classId}
         </if>
         ORDER BY t2.sort_code,t1.sort_code
     </select>

+ 21 - 1
src/main/resources/mapper/room/RoomValueWeekItemMapper.xml

@@ -3,7 +3,7 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.room.mapper.RoomValueWeekItemMapper">
-    <select id="getItemList" parameterType="com.xjrsoft.module.room.dto.RoomValueWeekPageDto" resultType="com.xjrsoft.module.room.vo.RoomValueWeekPageVo">
+    <select id="getItemPage" parameterType="com.xjrsoft.module.room.dto.RoomValueWeekPageDto" resultType="com.xjrsoft.module.room.vo.RoomValueWeekPageVo">
         SELECT t1.id,t2.sort_code,t2.start_time,t2.end_time,t1.user_id,t3.name as user_name,t1.post_name,t1.room_type,t1.number_people FROM room_value_week_item t1
         LEFT JOIN room_value_week t2 ON t1.room_value_week_id = t2.id
         LEFT JOIN xjr_user t3 ON t1.user_id = t3.id
@@ -22,6 +22,26 @@
         </if>
         ORDER BY t2.sort_code,t1.sort_code
     </select>
+    <select id="getItemList" parameterType="com.xjrsoft.module.room.dto.RoomValueWeekPageDto" resultType="com.xjrsoft.module.room.vo.RoomValueWeekPageVo">
+        SELECT t1.id,t2.sort_code,t2.start_time,t2.end_time,t1.user_id,t3.name as user_name,t1.post_name,t1.room_type,t1.number_people,t1.room_value_week_id FROM room_value_week_item t1
+        LEFT JOIN room_value_week t2 ON t1.room_value_week_id = t2.id
+        LEFT JOIN xjr_user t3 ON t1.user_id = t3.id
+        WHERE t2.delete_mark = 0 AND t1.delete_mark = 0
+        <if test="dto.startTime != null">
+            and t2.start_time >= #{dto.startTime}
+        </if>
+        <if test="dto.endTime != null">
+            and #{dto.endTime} >= t2.end_time
+        </if>
+        <if test="dto.userName != null and dto.userName != ''">
+            and t3.name like concat('%', #{dto.userId}, '%')
+        </if>
+        <if test="dto.roomType != null and dto.roomType != ''">
+            and t1.room_type = #{dto.roomType}
+        </if>
+        ORDER BY t2.sort_code,t1.sort_code
+    </select>
+
     <select id="getMaxSortCode" resultType="java.lang.Integer">
         SELECT IFNULL(MAX(sort_code),0) FROM room_value_week_item WHERE delete_mark = 0
     </select>