张晓波
2023-09-19 164694c47c35d6654df69b533e8dbf8b5423efc5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package com.thhy.engineering.modules.biz.room.service.impl;
 
import com.github.pagehelper.util.StringUtil;
import com.thhy.engineering.modules.biz.build.mapper.BuildMapper;
import com.thhy.engineering.modules.biz.room.entity.*;
import com.thhy.engineering.modules.biz.room.mapper.RoomMapper;
import com.thhy.engineering.modules.biz.room.service.RoomService;
import com.thhy.general.common.BasicMessage;
import com.thhy.general.config.SysUserInfo;
import com.thhy.general.exception.BasicException;
import com.thhy.general.utils.UserInfoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.io.Serializable;
import java.util.Date;
import java.util.List;
 
/**
 *  服务实现类
 * @author zhang_xiao_bo
 * @since 2023-04-11 17:19:21
 */
@Service
public class RoomServiceImpl implements RoomService {
 
 
 
    @Autowired
    private RoomMapper roomMapper;
 
    @Autowired
    private BuildMapper buildMapper;
 
    public Room get(Serializable id){
        return roomMapper.queryById(id);
    }
 
    public List<RoomListVo> findList(Room room){
        SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo();
        return roomMapper.findList(room.setCompanyId(userInfo.getCompanyId()));
    }
 
    @Override
    public List<BuildPull> pulldown() {
        SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo();
        List<BuildPull> buildPullList = buildMapper.findAll(userInfo.getCompanyId());
        for(BuildPull bp : buildPullList){
            List<FloorPull> floorPullList = roomMapper.queryFloorByBuild(bp.getBuildId());
            for(FloorPull fp : floorPullList){
                List<Room> roomList = roomMapper.queryRoomByBuildFloor(new Room(bp.getBuildId(),fp.getFloorNum()));
                fp.setRoomList(roomList);
            }
            bp.setFloors(floorPullList);
        }
        return buildPullList;
    }
 
    @Override
    public List<Room> findRoomList(Room room) {
        return roomMapper.findRoomList(room);
    }
 
    /**
     * 增加和修改
     * @param roomDto
     */
    @Transactional
    public void addRoom(RoomDto roomDto){
        List<Room> roomList = roomDto.getRoomList();
 
        List<Room> deleteList = roomDto.getDeleteList();
        //Room room = new Room(roomDto.getBuildId(),roomDto.getFloorNum());
        for(Room room : deleteList){
            room.setFloorNum(roomDto.getFloorNum());
            //
            int count = roomMapper.countByRoom(room.getRoomId());
            if(count>0){
                continue;
            }
            roomMapper.deletelogic(room.getRoomId());
        }
 
        for(Room room : roomList){
            room.setBuildId(roomDto.getBuildId());
            room.setFloorNum(roomDto.getFloorNum());
            if(StringUtil.isEmpty(room.getRoomId())){
                roomMapper.insert(room);
            }else{
                roomMapper.update(room);
            }
        }
        /*if(room.getRoomId()==null){
            roomMapper.insert(room);
        }else{
            roomMapper.update(room);
        }*/
    }
 
    /**
     * 修改
     * @param room
     */
    public void update(Room room){
        roomMapper.update(room);
    }
 
    /**
     * 删除
     * @param roomId
     */
    public void delete(Serializable roomId){
        roomMapper.deletelogic(roomId);
    }
 
    @Override
    public void deleteFloor(RoomDto roomDto) {
        RoomListVo roomListVo = roomMapper.CountByBuildFloor(roomDto);
        if(roomListVo!=null){
            throw new BasicException(new BasicMessage("000900",roomListVo.getBuildNum()+"号楼"+roomListVo.getFloorNum()+"层:"+roomListVo.getDormNums()+"已经配置"));
        }
        roomMapper.deleteByBuildFloor(new Room(roomDto.getBuildId(),roomDto.getFloorNum()));
    }
}