| | |
| | | package com.zy.acs.manager.manager.service.impl; |
| | | |
| | | import com.zy.acs.manager.manager.mapper.LaneMapper; |
| | | import com.zy.acs.manager.manager.entity.Lane; |
| | | import com.zy.acs.manager.manager.service.LaneService; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.zy.acs.framework.common.Cools; |
| | | import com.zy.acs.framework.common.SnowflakeIdWorker; |
| | | import com.zy.acs.framework.exception.CoolException; |
| | | import com.zy.acs.manager.core.domain.LaneDto; |
| | | import com.zy.acs.manager.core.service.MapService; |
| | | import com.zy.acs.manager.manager.entity.Lane; |
| | | import com.zy.acs.manager.manager.enums.StatusType; |
| | | import com.zy.acs.manager.manager.mapper.LaneMapper; |
| | | import com.zy.acs.manager.manager.service.LaneService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Service("laneService") |
| | | public class LaneServiceImpl extends ServiceImpl<LaneMapper, Lane> implements LaneService { |
| | | |
| | | @Autowired |
| | | private SnowflakeIdWorker snowflakeIdWorker; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public List<Lane> batchSaveByLaneDtoList(Long zonedId, List<LaneDto> laneDtoList) { |
| | | List<Lane> lanes = new ArrayList<>(); |
| | | if (Cools.isEmpty(laneDtoList)) { |
| | | return lanes; |
| | | } |
| | | Date now = new Date(); |
| | | for (LaneDto laneDto : laneDtoList) { |
| | | Lane lane = new Lane(); |
| | | if (null != zonedId) { |
| | | lane.setZoneId(zonedId); |
| | | } |
| | | lane.setHashCode(laneDto.getHashCode()); |
| | | lane.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); |
| | | if (!Cools.isEmpty(laneDto.getCodes())) { |
| | | lane.setCodes(JSON.toJSONString(laneDto.getCodes())); |
| | | } |
| | | lane.setStatus(StatusType.ENABLE.val); |
| | | lane.setCreateTime(now); |
| | | lane.setUpdateTime(now); |
| | | if (!this.save(lane)) { |
| | | throw new CoolException("failed to save lane"); |
| | | } else { |
| | | lanes.add(lane); |
| | | laneDto.setLaneId(lane.getId()); |
| | | } |
| | | } |
| | | return lanes; |
| | | } |
| | | |
| | | @Override |
| | | public Double getLaneDirection(LaneDto laneDto) { |
| | | if (null == laneDto) { |
| | | return null; |
| | | } |
| | | Lane lane = this.getById(laneDto.getLaneId()); |
| | | if (null == lane) { |
| | | return null; |
| | | } |
| | | Integer entryAngle = lane.getEntryAngle(); |
| | | if (null == entryAngle) { |
| | | return null; |
| | | } |
| | | if (entryAngle < 0) { |
| | | return null; |
| | | } |
| | | double entryAngleDouble = entryAngle.doubleValue(); |
| | | return MapService.mapToNearest(entryAngleDouble); |
| | | // return entryAngleDouble; |
| | | } |
| | | |
| | | } |