Commit 50531727 authored by hanbing's avatar hanbing

[update] 优化方案管理行人灯相位

parent 4a60f7d1
...@@ -3,35 +3,39 @@ package net.wanji.web.service.scheme.impl; ...@@ -3,35 +3,39 @@ package net.wanji.web.service.scheme.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import net.wanji.common.dto.CrossIdDTO; import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.dao.mapper.CrossLaneLightsMapper;
import net.wanji.databus.dao.mapper.CrossLightsMapper;
import net.wanji.databus.dao.mapper.LaneInfoMapper;
import net.wanji.databus.po.CrossLaneLightsPO;
import net.wanji.databus.po.CrossLightsPO;
import net.wanji.databus.po.LaneInfoPO;
import net.wanji.web.common.constant.ControlModeConst; import net.wanji.web.common.constant.ControlModeConst;
import net.wanji.web.common.exception.NoLanesException;
import net.wanji.web.common.exception.PhaseNoNotUniqueException; import net.wanji.web.common.exception.PhaseNoNotUniqueException;
import net.wanji.web.dto.LaneIdDTO; import net.wanji.web.dto.LaneIdDTO;
import net.wanji.web.dto.LightIdDTO; import net.wanji.web.dto.LightIdDTO;
import net.wanji.web.dto.SaveSchemeConfigDTO; import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.mapper.scheme.*;
import net.wanji.web.po.scheme.*;
import net.wanji.web.mapper.scheme.CrossAccompanyPhaseMapper; import net.wanji.web.mapper.scheme.CrossAccompanyPhaseMapper;
import net.wanji.databus.dao.mapper.CrossLaneLightsMapper;
import net.wanji.databus.dao.mapper.CrossLightsMapper;
import net.wanji.web.mapper.scheme.CrossPhaseLightsMapper; import net.wanji.web.mapper.scheme.CrossPhaseLightsMapper;
import net.wanji.web.mapper.scheme.CrossPhaseMapper; import net.wanji.web.mapper.scheme.CrossPhaseMapper;
import net.wanji.web.mapper.scheme.CrossSchemeMapper; import net.wanji.web.mapper.scheme.CrossSchemeMapper;
import net.wanji.databus.dao.mapper.LaneInfoMapper;
import net.wanji.web.po.scheme.CrossAccompanyPhasePO; import net.wanji.web.po.scheme.CrossAccompanyPhasePO;
import net.wanji.databus.po.CrossLaneLightsPO;
import net.wanji.databus.po.CrossLightsPO;
import net.wanji.web.po.scheme.CrossPhaseLightsPO; import net.wanji.web.po.scheme.CrossPhaseLightsPO;
import net.wanji.web.po.scheme.CrossPhasePO; import net.wanji.web.po.scheme.CrossPhasePO;
import net.wanji.web.po.scheme.CrossSchemePO; import net.wanji.web.po.scheme.CrossSchemePO;
import net.wanji.databus.po.LaneInfoPO;
import net.wanji.web.service.scheme.SchemeConfigService; import net.wanji.web.service.scheme.SchemeConfigService;
import net.wanji.web.vo.scheme.LaneIdsVO; import net.wanji.web.vo.scheme.LaneIdsVO;
import net.wanji.web.vo.scheme.LightIdVO; import net.wanji.web.vo.scheme.LightIdVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -84,20 +88,29 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -84,20 +88,29 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
@Override @Override
public LaneIdsVO getLanesByLight(LightIdDTO lightIdDTO) { public LaneIdsVO getLanesByLight(LightIdDTO lightIdDTO) {
Integer lightId = lightIdDTO.getLightId();
String crossId = lightIdDTO.getCrossId(); String crossId = lightIdDTO.getCrossId();
LaneIdsVO laneIdsVO = new LaneIdsVO(); LaneIdsVO laneIdsVO = new LaneIdsVO();
laneIdsVO.setCrossId(crossId); laneIdsVO.setCrossId(crossId);
laneIdsVO.setLanes(new ArrayList<>());
Integer lightId = lightIdDTO.getLightId(); // 获取方向
CrossLightsPO crossLightsPO = crossLightsMapper.selectById(lightId);
Integer dir = crossLightsPO.getDir();
laneIdsVO.setDir(dir);
// 行人灯类型
Integer type = crossLightsPO.getType();
laneIdsVO.setPedType(type);
// 构建车道信息
List<CrossLaneLightsPO> crossLaneLightsPOList = crossLaneLightsMapper.selectLanesByLightId(crossId, lightId); List<CrossLaneLightsPO> crossLaneLightsPOList = crossLaneLightsMapper.selectLanesByLightId(crossId, lightId);
List<String> laneIds = crossLaneLightsPOList.stream() List<String> laneIds = crossLaneLightsPOList.stream()
.map(CrossLaneLightsPO::getLaneId) .map(CrossLaneLightsPO::getLaneId)
.collect(Collectors.toList()); .collect(Collectors.toList());
if (CollectionUtil.isEmpty(laneIds)) { if (CollectionUtil.isNotEmpty(laneIds)) {
throw new NoLanesException("灯组没有对应的车道信息,请先完成灯组配置"); List<LaneInfoPO> laneInfoPOList = laneInfoMapper.selectByLaneIds(laneIds);
laneIdsVO.setLanes(laneInfoPOList);
} }
List<LaneInfoPO> laneInfoPOList = laneInfoMapper.selectByLaneIds(laneIds);
laneIdsVO.setLanes(laneInfoPOList);
return laneIdsVO; return laneIdsVO;
} }
......
...@@ -14,8 +14,16 @@ import java.util.List; ...@@ -14,8 +14,16 @@ import java.util.List;
@Data @Data
@ApiModel(value = "LaneIdsVO", description = "根据灯组查询车道信息返回值") @ApiModel(value = "LaneIdsVO", description = "根据灯组查询车道信息返回值")
public class LaneIdsVO { public class LaneIdsVO {
@ApiModelProperty(value = "路口ID", required = true) @ApiModelProperty(value = "路口ID", required = true)
private String crossId; private String crossId;
@ApiModelProperty(value = "车道列表", required = true)
@ApiModelProperty(value = "方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北")
private Integer dir;
@ApiModelProperty(value = "行人灯类型:20行人灯;21行人进口灯;22行人出口灯")
private Integer pedType;
@ApiModelProperty(value = "车道列表")
private List<LaneInfoPO> lanes; private List<LaneInfoPO> lanes;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment