|
@@ -84,34 +84,33 @@ public class GetOptionalRoomIdsService implements IHRMsfService {
|
|
|
//存放已累加的人员入住信息数据id,避免重复累加
|
|
|
//1.根据性别查询所有可住房间信息
|
|
|
List<DormitoryInfo> dormitoryInfoList = getDormitoryInfos(ctx, gender, dormitoryIdSet);
|
|
|
- if (dormitoryIdSet.isEmpty()) {
|
|
|
- //没有可住房间信息
|
|
|
- return "''";
|
|
|
- }
|
|
|
- //2.根据入住日期和退宿日期算出入住信息每个房间已住人数
|
|
|
- getCheckInInfoByOccupants(ctx, checkInDate, checkoutDate, dormitoryMap, dormitoryIdSet);
|
|
|
- //3.根据入住日期和退宿日期算出入住申请单状态为申请中的已住人数
|
|
|
- getCheckInInfoByCheckInApplication(ctx, checkInDate, checkoutDate, dormitoryMap, dormitoryIdSet);
|
|
|
- //4.根据入住日期和退宿日期算出换宿申请单状态为申请中的已住人数
|
|
|
- getRoomChangeInfoByRoomChangeApplication(ctx, checkInDate, checkoutDate, dormitoryMap, dormitoryIdSet);
|
|
|
- //5.算出房间剩余可住人数: 可住人数 - 已住人数
|
|
|
- for (int i = 0; i < dormitoryInfoList.size(); i++) {
|
|
|
- DormitoryInfo dormitoryInfo = dormitoryInfoList.get(i);
|
|
|
- String dormitoryId = dormitoryInfo.getId().toString();
|
|
|
- Map<String, Object> dormCheckInMap = dormitoryMap.get(dormitoryId);
|
|
|
- if (dormCheckInMap != null) {
|
|
|
- String personDormitoryTypeId = (String) dormCheckInMap.getOrDefault("personDormitoryTypeId", "");
|
|
|
- //判断是否宿舍类型跟人员类型是否相同
|
|
|
- if (personDormitoryTypeId.equals(personTypeId)) {
|
|
|
- //已住人数
|
|
|
- int dormCheckInCount = (int) dormCheckInMap.get("count");
|
|
|
- //可住人数
|
|
|
- int occupancyCapacity = dormitoryInfo.getOccupancyCapacity();
|
|
|
- if (occupancyCapacity - dormCheckInCount <= 0) {
|
|
|
+ if (!dormitoryIdSet.isEmpty()) {
|
|
|
+ //有可住房间信息
|
|
|
+ //2.根据入住日期和退宿日期算出入住信息每个房间已住人数
|
|
|
+ getCheckInInfoByOccupants(ctx, checkInDate, checkoutDate, dormitoryMap, dormitoryIdSet);
|
|
|
+ //3.根据入住日期和退宿日期算出入住申请单状态为申请中的已住人数
|
|
|
+ getCheckInInfoByCheckInApplication(ctx, checkInDate, checkoutDate, dormitoryMap, dormitoryIdSet);
|
|
|
+ //4.根据入住日期和退宿日期算出换宿申请单状态为申请中的已住人数
|
|
|
+ getRoomChangeInfoByRoomChangeApplication(ctx, checkInDate, checkoutDate, dormitoryMap, dormitoryIdSet);
|
|
|
+ //5.算出房间剩余可住人数: 可住人数 - 已住人数
|
|
|
+ for (int i = 0; i < dormitoryInfoList.size(); i++) {
|
|
|
+ DormitoryInfo dormitoryInfo = dormitoryInfoList.get(i);
|
|
|
+ String dormitoryId = dormitoryInfo.getId().toString();
|
|
|
+ Map<String, Object> dormCheckInMap = dormitoryMap.get(dormitoryId);
|
|
|
+ if (dormCheckInMap != null) {
|
|
|
+ String personDormitoryTypeId = (String) dormCheckInMap.getOrDefault("personDormitoryTypeId", "");
|
|
|
+ //判断是否宿舍类型跟人员类型是否相同
|
|
|
+ if (personDormitoryTypeId.equals(personTypeId)) {
|
|
|
+ //已住人数
|
|
|
+ int dormCheckInCount = (int) dormCheckInMap.get("count");
|
|
|
+ //可住人数
|
|
|
+ int occupancyCapacity = dormitoryInfo.getOccupancyCapacity();
|
|
|
+ if (occupancyCapacity - dormCheckInCount <= 0) {
|
|
|
+ dormitoryIdSet.remove(dormitoryId);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
dormitoryIdSet.remove(dormitoryId);
|
|
|
}
|
|
|
- } else {
|
|
|
- dormitoryIdSet.remove(dormitoryId);
|
|
|
}
|
|
|
}
|
|
|
}
|