| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package top.haijunit.train.service;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.collections4.MapUtils;
- import org.springframework.stereotype.Service;
- import top.haijunit.train.domain.constant.SwitchStateEnum;
- import top.haijunit.train.domain.entity.SwitchEntity;
- import top.haijunit.train.domain.repository.SwitchRepository;
- import java.time.LocalTime;
- import java.util.Date;
- import java.util.Map;
- /**
- * @author zhanghaijun
- * @date 2023/11/29 06:23
- * @description 道岔处理
- */
- @Slf4j
- @Service
- @RequiredArgsConstructor
- public class SwitchService {
- private final SwitchRepository switchRepository;
- /**
- * 改变道岔的状态
- *
- * @param switchStateMap 改变后的的道岔状态
- * @return 是否发生了变化,变化后需要等待时间
- */
- public boolean changeSwitchState(Map<Long, SwitchStateEnum> switchStateMap) {
- boolean isChanged = false;
- if (MapUtils.isEmpty(switchStateMap)) {
- return isChanged;
- }
- for (Map.Entry<Long, SwitchStateEnum> entry : switchStateMap.entrySet()) {
- SwitchEntity switchEntity = switchRepository.findById(entry.getKey()).orElse(null);
- if (switchEntity == null) {
- log.error("-----道岔不存在, id: {}", entry.getKey());
- continue;
- }
- if (switchEntity.getSwitchState() != entry.getValue()) {
- switchEntity.setSwitchState(entry.getValue());
- switchEntity.setUpdateStateTime(new Date());
- switchRepository.save(switchEntity);
- isChanged = true;
- }
- }
- return isChanged;
- }
- }
|