| | |
| | | DateUtils.localDateTimeToDate(dto.getFailureTime()), |
| | | maps |
| | | ); |
| | | xpElectronicFence.setStatus(1); |
| | | } |
| | | } |
| | | } |
| | |
| | | xpElectronicFence.setStatus(0); |
| | | } else if (dto.getStatus() == 1) { |
| | | if (dto.getEffectType() == 1) { |
| | | // 设置为启用中 |
| | | // 立即生效:设置为启用中 |
| | | xpElectronicFence.setStatus(2); |
| | | xpElectronicFence.setEffectTime(LocalDateTime.now()); |
| | | } else { |
| | | if (dto.getEffectTime().isBefore(LocalDateTime.now())) { |
| | | // 设置为启用中 |
| | | // 定时生效时间已过:直接设置为启用中 |
| | | xpElectronicFence.setStatus(2); |
| | | } else { |
| | | // 先删除以前的定时任务 |
| | | // 定时生效:注册生效定时任务 |
| | | QuartzManager.removeJob((ElectronicEffectJob.effect + xpElectronicFence.getId()).toUpperCase(), TimeJobType.ELECTRONIC_EFFECT); |
| | | |
| | | // 添加定时任务job type=1电子围栏生效 type=2电子围栏失效 |
| | | Map<String, ? extends Object> maps = |
| | | new ImmutableMap.Builder<String, Long>(). |
| | | put("type", 1L) |
| | | Map<String, ? extends Object> effectMaps = |
| | | new ImmutableMap.Builder<String, Long>() |
| | | .put("type", 1L) |
| | | .put("id", xpElectronicFence.getId()) |
| | | .build(); |
| | | QuartzManager.addJob( |
| | |
| | | (ElectronicEffectJob.effect + xpElectronicFence.getId()).toUpperCase(), |
| | | TimeJobType.ELECTRONIC_EFFECT, |
| | | DateUtils.localDateTimeToDate(dto.getEffectTime()), |
| | | maps |
| | | effectMaps |
| | | ); |
| | | xpElectronicFence.setStatus(1); |
| | | } |
| | | } |
| | | if (dto.getFailureType() != null && dto.getFailureType() == 2) { |
| | | |
| | | if (dto.getFailureTime().isBefore(LocalDateTime.now())) { |
| | | // 设置待启用 |
| | | xpElectronicFence.setStatus(1); |
| | | } else { |
| | | // 先删除以前的定时任务 |
| | | QuartzManager.removeJob((ElectronicEffectJob.failure + xpElectronicFence.getId()).toUpperCase(), TimeJobType.ELECTRONIC_FAILURE); |
| | | // 添加定时任务job type=1电子围栏生效 type=2电子围栏失效 |
| | | Map<String, ? extends Object> maps = |
| | | new ImmutableMap.Builder<String, Long>(). |
| | | put("type", 2L) |
| | | .put("id", xpElectronicFence.getId()) |
| | | .build(); |
| | | QuartzManager.addJob( |
| | | ElectronicEffectJob.class, |
| | | (ElectronicEffectJob.failure + xpElectronicFence.getId()).toUpperCase(), |
| | | TimeJobType.ELECTRONIC_FAILURE, |
| | | DateUtils.localDateTimeToDate(dto.getFailureTime()), |
| | | maps |
| | | ); |
| | | xpElectronicFence.setStatus(1); |
| | | } |
| | | } |
| | | // 失效时间处理:独立于 status 判断,只要 failureType=2 就注册失效定时任务 |
| | | if (dto.getFailureType() != null && dto.getFailureType() == 2) { |
| | | if (dto.getFailureTime() != null && !dto.getFailureTime().isBefore(LocalDateTime.now())) { |
| | | // 先删除以前的定时任务,再注册新的失效定时任务 |
| | | QuartzManager.removeJob((ElectronicEffectJob.failure + xpElectronicFence.getId()).toUpperCase(), TimeJobType.ELECTRONIC_FAILURE); |
| | | Map<String, ? extends Object> failureMaps = |
| | | new ImmutableMap.Builder<String, Long>() |
| | | .put("type", 2L) |
| | | .put("id", xpElectronicFence.getId()) |
| | | .build(); |
| | | QuartzManager.addJob( |
| | | ElectronicEffectJob.class, |
| | | (ElectronicEffectJob.failure + xpElectronicFence.getId()).toUpperCase(), |
| | | TimeJobType.ELECTRONIC_FAILURE, |
| | | DateUtils.localDateTimeToDate(dto.getFailureTime()), |
| | | failureMaps |
| | | ); |
| | | } |
| | | } else { |
| | | // failureType 不是定时失效,清除可能存在的旧失效定时任务 |
| | | QuartzManager.removeJob((ElectronicEffectJob.failure + xpElectronicFence.getId()).toUpperCase(), TimeJobType.ELECTRONIC_FAILURE); |
| | | } |
| | | //根据经纬度获取当前城市code |
| | | XpElectronicFenceArea electronicFenceArea = dto.getElectronicFenceAreas().get(0); |