| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package com.xjrsoft.module.room.service.impl;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.bean.BeanUtil;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.github.yulichang.base.MPJBaseServiceImpl;
- import com.github.yulichang.toolkit.MPJWrappers;
- 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.entity.RoomBed;
- import com.xjrsoft.module.room.mapper.RoomBedMapper;
- import com.xjrsoft.module.room.mapper.RoomMapper;
- import com.xjrsoft.module.room.service.IRoomService;
- import com.xjrsoft.module.room.vo.RoomPageVo;
- import com.xjrsoft.module.student.entity.BaseStudent;
- import lombok.AllArgsConstructor;
- import org.springframework.stereotype.Service;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @title: 寝室
- * @Author dzx
- * @Date: 2023-12-27
- * @Version 1.0
- */
- @Service
- @AllArgsConstructor
- public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implements IRoomService {
- private final RoomMapper roomMapper;
- private final RoomBedMapper roomBedMapper;
- @Override
- public Page<RoomPageVo> getPage(Page<RoomPageDto> page, RoomPageDto dto) {
- Page<RoomPageVo> result = roomMapper.getPage(page, dto);
- return result;
- }
- @Override
- public Boolean saveBatch(AddRoomDto dto) {
- Integer maxSortCode = roomMapper.getMaxSortCode();
- Date createDate = new Date();
- long createUserId = StpUtil.getLoginIdAsLong();
- for (int i = 0; i < dto.getFloorRoomsCount(); i ++){
- for (String floorNumber : dto.getFloorNumber().split(",")) {
- String roomName = floorNumber + String.format("%02d", (i + 1));
- Map<String, Object> param = new HashMap<>();
- param.put("room_name", roomName);
- param.put("floor_number", Integer.parseInt(floorNumber));
- param.put("office_build_id", dto.getOfficeBuildId());
- List<Room> rooms = roomMapper.selectByMap(param);
- if(rooms != null && !rooms.isEmpty()){
- continue;
- }
- //先添加寝室
- Room room = BeanUtil.toBean(dto, Room.class);
- room.setSortCode(maxSortCode);
- room.setFloorNumber(Integer.parseInt(floorNumber));
- room.setCreateDate(createDate);
- room.setCreateUserId(createUserId);
- room.setDeleteMark(0);
- room.setEnabledMark(1);
- room.setRoomName(roomName);
- roomMapper.insert(room);
- maxSortCode ++;
- Long roomId = room.getId();
- Integer bedMaxSortCode = roomBedMapper.getMaxSortCode() + 1;
- //生成床位数据
- for (int j = 1; j <= dto.getBedCount(); j ++){
- RoomBed bed = new RoomBed();
- bed.setRoomId(roomId);
- bed.setSortCode(bedMaxSortCode + j - 1);
- bed.setCreateDate(createDate);
- bed.setCreateUserId(createUserId);
- bed.setDeleteMark(0);
- bed.setEnabledMark(1);
- bed.setBedNumber(j);
- roomBedMapper.insert(bed);
- }
- }
- }
- return true;
- }
- @Override
- public String deleteReachBed(Long id) {
- List<RoomBed> bedList = roomBedMapper.selectList(
- MPJWrappers.<RoomBed>lambdaJoin()
- .select(BaseStudent::getUserId)
- .eq(RoomBed::getRoomId, id).isNotNull(RoomBed::getStudentUserId)
- );
- if(bedList != null && !bedList.isEmpty()){
- return "寝室里面已安排学生,无法删除";
- }
- roomMapper.deleteById(id);
- Map<String, Object> param = new HashMap<>();
- param.put("room_id", id);
- roomBedMapper.deleteByMap(param);
- return "ok";
- }
- }
|