Browse Source

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

phoenix 1 year ago
parent
commit
b5dc48ca27

+ 0 - 4
src/main/java/com/xjrsoft/common/utils/TreeUtil.java

@@ -26,8 +26,6 @@ public class TreeUtil {
     public static <T extends ITreeNode<T,V>,V> List<T> build(List<T> items) {
 
         List<String> notParents = new ArrayList<>();
-        System.out.println("构建树结构");
-        long startTime = System.currentTimeMillis();
 
         items.forEach((node) -> {
             V parentId = node.getParentId();
@@ -54,8 +52,6 @@ public class TreeUtil {
             }
 
         });
-        long endTime = System.currentTimeMillis();
-        System.out.printf("构建树结构:%d \n",(endTime - startTime));
 
         return items.stream().filter(x -> StrUtil.isEmptyIfStr(x.getParentId()) || StrUtil.equals(String.valueOf(x.getParentId()), String.valueOf(GlobalConstant.FIRST_NODE_VALUE)) || notParents.contains(x.getId().toString())).collect(Collectors.toList());
     }

+ 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 - 0
src/main/java/com/xjrsoft/module/room/dto/RoomBedPageDto.java

@@ -40,4 +40,7 @@ public class RoomBedPageDto extends PageInput {
 
     @ApiModelProperty("学号")
     public String studentId;
+
+    @ApiModelProperty("入住身份")
+    public String identity;
 }

+ 2 - 2
src/main/java/com/xjrsoft/module/room/dto/RoomValueWeekPageDto.java

@@ -28,8 +28,8 @@ public class RoomValueWeekPageDto extends PageInput {
     @ApiModelProperty("结束时间")
     private String endTime;
 
-    @ApiModelProperty("值班人员id")
-    private String userId;
+    @ApiModelProperty("值班人员")
+    private String userName;
 
     @ApiModelProperty("寝室类型")
     private String roomType;

+ 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);
+
     /**
      * 批量添加
      */

+ 7 - 2
src/main/java/com/xjrsoft/module/room/service/impl/RoomServiceImpl.java

@@ -18,8 +18,8 @@ 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;
 import org.springframework.stereotype.Service;
 
@@ -47,6 +47,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<>();
@@ -118,7 +123,7 @@ public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implem
     public String deleteReachBed(Long id) {
         List<RoomBed> bedList = roomBedMapper.selectList(
             MPJWrappers.<RoomBed>lambdaJoin()
-            .select(BaseStudent::getUserId)
+            .select(RoomBed::getStudentUserId)
             .eq(RoomBed::getRoomId, id).isNotNull(RoomBed::getStudentUserId)
         );
         if(bedList != null && !bedList.isEmpty()){

+ 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;
+}

+ 16 - 14
src/main/java/com/xjrsoft/module/system/service/impl/AuthorizeServiceImpl.java

@@ -163,24 +163,26 @@ public class AuthorizeServiceImpl extends ServiceImpl<AuthorizeMapper, Authorize
             vo.setButtonAuthCode(buttonList.stream().filter(x -> x.getMenuId().equals(menu.getId())).map(MenuButton::getCode).collect(Collectors.toSet()));
             vo.setColumnAuthCode(columnList.stream().filter(x -> x.getMenuId().equals(menu.getId())).map(MenuColumn::getCode).collect(Collectors.toSet()));
             // 处理表单字段,可能存在子表的情况
-            Set<Object> formAuthCodeList = new LinkedHashSet<>(formTreeVoList.size());
-            for (MenuFormTreeVo treeVo : formTreeVoList) {
-                if (treeVo.getMenuId().equals(menu.getId())) {
-                    List<MenuFormTreeVo> children = treeVo.getChildren();
-                    if (CollectionUtils.isNotEmpty(children)) {
-                        Set<String> subCodeList = new LinkedHashSet<>(children.size());
-                        for (MenuFormTreeVo child : children) {
-                            subCodeList.add(child.getCode());
+            if (formTreeVoList != null){
+                Set<Object> formAuthCodeList = new LinkedHashSet<>(formTreeVoList.size());
+                for (MenuFormTreeVo treeVo : formTreeVoList) {
+                    if (treeVo.getMenuId().equals(menu.getId())) {
+                        List<MenuFormTreeVo> children = treeVo.getChildren();
+                        if (CollectionUtils.isNotEmpty(children)) {
+                            Set<String> subCodeList = new LinkedHashSet<>(children.size());
+                            for (MenuFormTreeVo child : children) {
+                                subCodeList.add(child.getCode());
+                            }
+                            Map<String, Set<String>> subTableCodeMap = new HashMap<>(1);
+                            subTableCodeMap.put(treeVo.getCode(), subCodeList);
+                            formAuthCodeList.add(subTableCodeMap);
+                        } else {
+                            formAuthCodeList.add(treeVo.getCode());
                         }
-                        Map<String, Set<String>> subTableCodeMap = new HashMap<>(1);
-                        subTableCodeMap.put(treeVo.getCode(), subCodeList);
-                        formAuthCodeList.add(subTableCodeMap);
-                    } else {
-                        formAuthCodeList.add(treeVo.getCode());
                     }
                 }
+                vo.setFormAuthCode(formAuthCodeList);
             }
-            vo.setFormAuthCode(formAuthCodeList);
             authVoList.add(vo);
         }
 

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

@@ -14,6 +14,7 @@
         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 t2.gender = t9.code AND t9.item_id = 2023000000000000004
+        where t1.delete_mark = 0 and t2.delete_mark = 0
         <if test="dto.officeBuildId != null">
             and t2.office_build_id = #{dto.officeBuildId}
         </if>
@@ -38,6 +39,9 @@
         <if test="dto.studentId != null">
             and t5.student_id like concat('%',#{dto.studentId},'%')
         </if>
+        <if test="dto.identity != null and dto.identity != ''">
+            and t5.check_in_status like concat('%',#{dto.identity},'%')
+        </if>
         ORDER BY t1.sort_code
     </select>
     <select id="getMaxSortCode" resultType="java.lang.Integer">
@@ -73,10 +77,10 @@
         AND a2.class_id = t1.id
         )
         <if test="dto.gradeId != null">
-            and a2.grade_id = #{dto.gradeId}
+            and t1.grade_id = #{dto.gradeId}
         </if>
         <if test="dto.classId != null">
-            and a2.class_id = #{dto.classId}
+            and t1.id = #{dto.classId}
         </if>
     </select>
     <select id="getDistributeRoomBedInfo" parameterType="com.xjrsoft.module.room.dto.DistributeRoomBedPageDto" resultType="com.xjrsoft.module.room.vo.DistributeRoomBedPageVo">

+ 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>

+ 0 - 3
src/main/resources/mapper/room/RoomValueWeekItemMapper.xml

@@ -14,9 +14,6 @@
         <if test="dto.endTime != null">
             and #{dto.endTime} >= t2.end_time
         </if>
-        <if test="dto.userId != null">
-            and t3.id = #{dto.userId}
-        </if>
         <if test="dto.userName != null and dto.userName != ''">
             and t3.name like concat('%', #{dto.userId}, '%')
         </if>

+ 1 - 1
src/main/resources/mapper/textbook/TextbookMapper.xml

@@ -123,7 +123,7 @@
         FROM wf_textbook_claim t1
                  LEFT JOIN base_semester t2 ON t1.base_semester_id = t2.id
                  LEFT JOIN base_class t3 ON t1.class_id = t3.id
-                 LEFT JOIN textbook_issue_record t4 ON t4.wf_textbook_claim_id = t1.id
+                 LEFT JOIN textbook_issue_record t4 ON t4.data_id = t1.id
                  LEFT JOIN xjr_user t5 ON t4.receive_user_id = t5.id
                  LEFT JOIN xjr_user_role_relation t6 ON t5.id = t6.user_id
                  LEFT JOIN xjr_role t7 ON t6.role_id = t7.id