|
@@ -427,7 +427,7 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
|
|
|
LambdaQueryWrapper<HouseLock> wrapperHL = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<HouseLock> wrapperHL = new LambdaQueryWrapper<>();
|
|
|
wrapperHL.eq(HouseLock::getHouseNumberId, houseNumberId);
|
|
wrapperHL.eq(HouseLock::getHouseNumberId, houseNumberId);
|
|
|
HouseLock houseLock = houseLockService.getOne(wrapperHL);
|
|
HouseLock houseLock = houseLockService.getOne(wrapperHL);
|
|
|
- String battery="";
|
|
|
|
|
|
|
+ String battery = "";
|
|
|
if (ObjectUtils.isNotEmpty(houseLock)) {
|
|
if (ObjectUtils.isNotEmpty(houseLock)) {
|
|
|
String equipmentType = houseLock.getEquipmentType();
|
|
String equipmentType = houseLock.getEquipmentType();
|
|
|
|
|
|
|
@@ -480,8 +480,8 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
|
|
|
String liveTime = apartmentSetting.getLiveTime();
|
|
String liveTime = apartmentSetting.getLiveTime();
|
|
|
String leaveTime = apartmentSetting.getLeaveTime();
|
|
String leaveTime = apartmentSetting.getLeaveTime();
|
|
|
|
|
|
|
|
- startTime=startTime+" "+liveTime;
|
|
|
|
|
- endTime=endTime+" "+leaveTime;
|
|
|
|
|
|
|
+ startTime = startTime + " " + liveTime;
|
|
|
|
|
+ endTime = endTime + " " + leaveTime;
|
|
|
|
|
|
|
|
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
LocalDateTime start = LocalDateTime.parse(startTime, dateTimeFormatter1);
|
|
LocalDateTime start = LocalDateTime.parse(startTime, dateTimeFormatter1);
|
|
@@ -1560,7 +1560,7 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
|
|
|
ArrayList<HouseNumberState> list = new ArrayList<>();
|
|
ArrayList<HouseNumberState> list = new ArrayList<>();
|
|
|
for (String houseNumberId : houseNumberIds) {
|
|
for (String houseNumberId : houseNumberIds) {
|
|
|
// 查找房间对应的锁房状态
|
|
// 查找房间对应的锁房状态
|
|
|
- HouseNumberState houseNumberState = houseNumberStateService.getLockHouseNumberState(houseNumberId,now);
|
|
|
|
|
|
|
+ HouseNumberState houseNumberState = houseNumberStateService.getLockHouseNumberState(houseNumberId, now);
|
|
|
if (ObjectUtils.isNotEmpty(houseNumberState)) {
|
|
if (ObjectUtils.isNotEmpty(houseNumberState)) {
|
|
|
houseNumberState.setEndTime(format);
|
|
houseNumberState.setEndTime(format);
|
|
|
list.add(houseNumberState);
|
|
list.add(houseNumberState);
|
|
@@ -1574,10 +1574,99 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public CommonResult reserveHour(String houseNumberId, String startTime, String endTime, int adminId) {
|
|
|
|
|
|
|
+ public CommonResult reserveHour(String houseNumberId, String startTime, int liveTime, int adminId) {
|
|
|
|
|
+ if (ObjectUtils.isEmpty(houseNumberId) && ObjectUtils.isEmpty(startTime) && ObjectUtils.isEmpty(liveTime)) {
|
|
|
|
|
+ return CommonResult.fail();
|
|
|
|
|
+ }
|
|
|
|
|
+ PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
|
|
|
|
|
+ if (ObjectUtils.isEmpty(permissionSetting)) {
|
|
|
|
|
+ return CommonResult.fail("非法进入");
|
|
|
|
|
+ }
|
|
|
|
|
+// 判断该用户是否拥有权限
|
|
|
|
|
+ String houseTypeManagement = permissionSetting.getHouseStatusManagement();
|
|
|
|
|
+ if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("1")) {
|
|
|
|
|
+ return CommonResult.fail("此账号暂无该权限");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取钟点房可用时间段
|
|
|
|
|
+ List<ApartmentSetting> list = apartmentSettingService.list(new LambdaQueryWrapper<>());
|
|
|
|
|
+ ApartmentSetting apartmentSetting = list.get(0);
|
|
|
|
|
+ String hourTime = apartmentSetting.getHourTime();
|
|
|
|
|
|
|
|
|
|
+ DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ LocalDateTime start = LocalDateTime.parse(startTime, dateTimeFormatter1);
|
|
|
|
|
+ LocalDateTime end = start.plusHours(liveTime);
|
|
|
|
|
+ String endTime = end.format(dateTimeFormatter1);
|
|
|
|
|
+ String[] split = hourTime.split(",");
|
|
|
|
|
+ ArrayList<ReserveDayVo> reserveDayVos = new ArrayList<>();
|
|
|
|
|
+ for (int i = 0; i < 13; i++) {
|
|
|
|
|
+ ReserveDayVo reserveDayVo = new ReserveDayVo();
|
|
|
|
|
+ LocalDateTime localDateTime = start.plusHours(i);
|
|
|
|
|
+ LocalDateTime localDateTime2 = end.plusHours(i);
|
|
|
|
|
+ String format = localDateTime.format(dateTimeFormatter1);
|
|
|
|
|
+ String format2 = localDateTime2.format(dateTimeFormatter1);
|
|
|
|
|
+ reserveDayVo.setDate(format + "至" + format2);
|
|
|
|
|
+// 先判断时间是否在可用时间范围内
|
|
|
|
|
+ LocalDateTime start1 = localDateTime.withHour(23).withMinute(59).withSecond(59);
|
|
|
|
|
+ String format3 = start1.format(dateTimeFormatter1);
|
|
|
|
|
+
|
|
|
|
|
+ String[] s1 = format.split(" ");
|
|
|
|
|
+ String startStr = s1[0];
|
|
|
|
|
+
|
|
|
|
|
+ String[] s2 = format2.split(" ");
|
|
|
|
|
+ String endStr = s2[0];
|
|
|
|
|
+
|
|
|
|
|
+ Integer status = 1;
|
|
|
|
|
+ for (int j = 0; j < split.length; j++) {
|
|
|
|
|
+ String s = split[j];
|
|
|
|
|
+ String[] split1 = s.split("-");
|
|
|
|
|
+ String start2 = split1[0];
|
|
|
|
|
+ String end2 = split1[1];
|
|
|
|
|
+ String start3 = startStr + " " + start2;
|
|
|
|
|
+ String end3 = startStr + " " + end2;
|
|
|
|
|
+ LocalDateTime localStart = LocalDateTime.parse(start3, dateTimeFormatter1);
|
|
|
|
|
+ LocalDateTime localEnd = LocalDateTime.parse(end3, dateTimeFormatter1);
|
|
|
|
|
+
|
|
|
|
|
+// 该天最后时间小于结束时间则需要分为2个时间段
|
|
|
|
|
+ if (start1.isBefore(localDateTime2)) {
|
|
|
|
|
+ String start4 = endStr + " " + start2;
|
|
|
|
|
+ String end4 = endStr + " " + end2;
|
|
|
|
|
+ LocalDateTime localStart4 = LocalDateTime.parse(start4, dateTimeFormatter1);
|
|
|
|
|
+ LocalDateTime localEnd4 = LocalDateTime.parse(end4, dateTimeFormatter1);
|
|
|
|
|
+
|
|
|
|
|
+ if ((localStart.isBefore(localDateTime) || format.equals(start3)) && (start1.isBefore(localEnd) || format3.equals(end3)) && (localStart4.isBefore(start1) || start4.equals(format3)) && (start1.isBefore(localEnd4) || end4.equals(format3))) {
|
|
|
|
|
+// 可用
|
|
|
|
|
+ status = 2;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- return null;
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if ((localStart.isBefore(localDateTime) || format.equals(start3)) && (localDateTime2.isBefore(localEnd) || format2.equals(end3))) {
|
|
|
|
|
+// 可用
|
|
|
|
|
+ status = 2;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (status == 2) {
|
|
|
|
|
+ // 获取该时间段内的房态的使用情况
|
|
|
|
|
+ List<HouseNumberState> houseNumberStateList = houseNumberStateService.beBooked(houseNumberId, format, format2);
|
|
|
|
|
+ if (ObjectUtils.isNotEmpty(houseNumberStateList) && houseNumberStateList.size() > 0) {
|
|
|
|
|
+ reserveDayVo.setStatus("不可用");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ reserveDayVo.setStatus("可用");
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ reserveDayVo.setStatus("不可用");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ reserveDayVos.add(reserveDayVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.ok(reserveDayVos);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|