| | |
| | | package com.java110.community.bmo.room.impl; |
| | | |
| | | import com.java110.community.bmo.room.IQueryRoomStatisticsBMO; |
| | | import com.java110.dto.owner.OwnerRoomRelDto; |
| | | import com.java110.dto.room.RoomDto; |
| | | import com.java110.intf.store.IComplaintV1InnerServiceSMO; |
| | | import com.java110.intf.community.IRepairPoolV1InnerServiceSMO; |
| | |
| | | import com.java110.intf.user.IOwnerCarV1InnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerV1InnerServiceSMO; |
| | | import com.java110.utils.util.ListUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | @Service |
| | | public class QueryRoomStatisticsBMOImpl implements IQueryRoomStatisticsBMO { |
| | | |
| | | public static final int MAX_LINE_COUNT = 15; |
| | | public static final int MAX_LINE_COUNT = 30; |
| | | |
| | | @Autowired |
| | | private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl; |
| | |
| | | @Override |
| | | public List<RoomDto> query(List<RoomDto> roomDtos) { |
| | | |
| | | if (roomDtos == null || roomDtos.size() < 1) { |
| | | if (ListUtil.isNull(roomDtos)) { |
| | | return roomDtos; |
| | | } |
| | | |
| | |
| | | List<String> roomIds = new ArrayList<>(); |
| | | List<String> ownerIds = new ArrayList<>(); |
| | | List<String> ownerTels = new ArrayList<>(); |
| | | |
| | | |
| | | for (RoomDto roomDto : roomDtos) { |
| | | if (!StringUtil.isEmpty(roomDto.getOwnerId())) { |
| | | ownerIds.add(roomDto.getOwnerId()); |
| | |
| | | |
| | | roomIds.add(roomDto.getRoomId()); |
| | | } |
| | | |
| | | |
| | | // 查询 家庭成员数 |
| | | queryOwnerMemberCount(ownerIds, roomDtos); |
| | |
| | | return roomDtos; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<RoomDto> querySimple(List<RoomDto> roomDtos) { |
| | | if (ListUtil.isNull(roomDtos)) { |
| | | return roomDtos; |
| | | } |
| | | |
| | | //这里限制行数,以免影响系统性能 |
| | | if (roomDtos.size() > MAX_LINE_COUNT) { |
| | | return roomDtos; |
| | | } |
| | | List<String> roomIds = new ArrayList<>(); |
| | | |
| | | for (RoomDto roomDto : roomDtos) { |
| | | roomIds.add(roomDto.getRoomId()); |
| | | } |
| | | // 查询业主信息 |
| | | queryRoomOwner(roomIds, roomDtos); |
| | | List<String> ownerIds = new ArrayList<>(); |
| | | List<String> ownerTels = new ArrayList<>(); |
| | | for (RoomDto roomDto : roomDtos) { |
| | | if (!StringUtil.isEmpty(roomDto.getOwnerId())) { |
| | | ownerIds.add(roomDto.getOwnerId()); |
| | | } |
| | | if (!StringUtil.isEmpty(roomDto.getOwnerTel())) { |
| | | ownerTels.add(roomDto.getOwnerTel()); |
| | | } |
| | | } |
| | | |
| | | // 查询 家庭成员数 |
| | | queryOwnerMemberCount(ownerIds, roomDtos); |
| | | |
| | | // 查询 车辆数 |
| | | queryCarCount(ownerIds, roomDtos); |
| | | |
| | | // 查询 房屋数量 |
| | | queryRoomCount(ownerIds, roomDtos); |
| | | |
| | | // 查询房屋 合同 |
| | | queryRoomContract(roomIds, roomDtos); |
| | | |
| | | return roomDtos; |
| | | } |
| | | |
| | | |
| | | private void queryRoomOwner(List<String> roomIds, List<RoomDto> roomDtos) { |
| | | if (ListUtil.isNull(roomDtos)) { |
| | | return; |
| | | } |
| | | |
| | | OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto(); |
| | | ownerRoomRelDto.setRoomIds(roomIds.toArray(new String[roomIds.size()])); |
| | | List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto); |
| | | if (ListUtil.isNull(ownerRoomRelDtos)) { |
| | | return; |
| | | } |
| | | for (RoomDto tmpRoomDto : roomDtos) { |
| | | for (OwnerRoomRelDto tOwnerRoomRelDto : ownerRoomRelDtos) { |
| | | if (!tmpRoomDto.getRoomId().equals(tOwnerRoomRelDto.getRoomId())) { |
| | | continue; |
| | | } |
| | | tmpRoomDto.setOwnerId(tOwnerRoomRelDto.getOwnerId()); |
| | | tmpRoomDto.setOwnerName(tOwnerRoomRelDto.getOwnerName()); |
| | | tmpRoomDto.setOwnerTel(tOwnerRoomRelDto.getLink()); |
| | | tmpRoomDto.setStartTime(tOwnerRoomRelDto.getStartTime()); |
| | | tmpRoomDto.setEndTime(tOwnerRoomRelDto.getEndTime()); |
| | | tmpRoomDto.setLink(tOwnerRoomRelDto.getLink()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<RoomDto> queryRoomOweFee(List<RoomDto> roomDtos) { |
| | | if (roomDtos == null || roomDtos.size() < 1) { |
| | | if (ListUtil.isNull(roomDtos)) { |
| | | return roomDtos; |
| | | } |
| | | List<String> roomIds = new ArrayList<>(); |
| | |
| | | return roomDtos; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询 |
| | | * |
| | |
| | | * @param roomDtos |
| | | */ |
| | | private void queryRoomContract(List<String> roomIds, List<RoomDto> roomDtos) { |
| | | if (roomDtos == null || roomDtos.size() < 1) { |
| | | if (ListUtil.isNull(roomDtos)) { |
| | | return; |
| | | } |
| | | Map info = new HashMap(); |
| | |
| | | } |
| | | |
| | | private void queryRoomOweFee(List<String> roomIds, List<RoomDto> roomDtos) { |
| | | if (roomIds == null || roomIds.size() < 1) { |
| | | if (ListUtil.isNull(roomIds)) { |
| | | return; |
| | | } |
| | | Map info = new HashMap(); |
| | |
| | | |
| | | for (RoomDto roomDto : roomDtos) { |
| | | for (Map count : repairCounts) { |
| | | if (!StringUtil.isEmpty(roomDto.getRoomId()) && !StringUtil.isEmpty(count.get("roomId").toString())) { |
| | | if (roomDto.getRoomId().equals(count.get("roomId").toString())) { |
| | | roomDto.setRoomOweFee(count.get("oweFee").toString()); |
| | | } |
| | | } else { |
| | | if (StringUtil.isEmpty(roomDto.getRoomId())) { |
| | | continue; |
| | | } |
| | | if (StringUtil.isEmpty(count.get("roomId").toString())) { |
| | | continue; |
| | | } |
| | | if (roomDto.getRoomId().equals(count.get("roomId").toString())) { |
| | | roomDto.setRoomOweFee(count.get("oweFee").toString()); |
| | | } |
| | | } |
| | | } |
| | |
| | | List<Map> repairCounts = reportOweFeeInnerServiceSMOImpl.queryOweFeesByOwnerIds(info); |
| | | |
| | | for (RoomDto roomDto : roomDtos) { |
| | | if(StringUtil.isEmpty(roomDto.getOwnerId())){ |
| | | if (StringUtil.isEmpty(roomDto.getOwnerId())) { |
| | | continue; |
| | | } |
| | | for (Map count : repairCounts) { |
| | |
| | | * @param roomDtos |
| | | */ |
| | | private void queryComplaintCount(List<String> ownerTels, List<RoomDto> roomDtos) { |
| | | if (ownerTels == null || ownerTels.size() < 1) { |
| | | if (ListUtil.isNull(ownerTels)) { |
| | | return; |
| | | } |
| | | |
| | |
| | | List<Map> memberCounts = ownerCarV1InnerServiceSMOImpl.queryOwnerCarCountByOwnerIds(ownerIds); |
| | | |
| | | for (RoomDto roomDto : roomDtos) { |
| | | if(StringUtil.isEmpty(roomDto.getOwnerId())){ |
| | | if (StringUtil.isEmpty(roomDto.getOwnerId())) { |
| | | continue; |
| | | } |
| | | for (Map count : memberCounts) { |
| | |
| | | * @param roomDtos |
| | | */ |
| | | private void queryOwnerMemberCount(List<String> ownerIds, List<RoomDto> roomDtos) { |
| | | if (ownerIds == null || ownerIds.size() < 1) { |
| | | if (ListUtil.isNull(ownerIds)) { |
| | | return; |
| | | } |
| | | |
| | | List<Map> memberCounts = ownerV1InnerServiceSMOImpl.queryOwnerMembersCount(ownerIds); |
| | | |
| | | for (RoomDto roomDto : roomDtos) { |
| | | if(StringUtil.isEmpty(roomDto.getOwnerId())){ |
| | | if (StringUtil.isEmpty(roomDto.getOwnerId())) { |
| | | continue; |
| | | } |
| | | for (Map count : memberCounts) { |