Commit 2f320991 authored by hanbing's avatar hanbing

方案管理-方案配置,增加根据车道获取灯组、根据灯组获取车道

parent cddbe853
......@@ -5,8 +5,12 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.web.common.entity.JsonViewObject;
import net.wanji.web.dto.LaneIdDTO;
import net.wanji.web.dto.LightIdDTO;
import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.service.scheme.impl.SchemeConfigServiceImpl;
import net.wanji.web.vo.scheme.LaneIdsVO;
import net.wanji.web.vo.scheme.LightIdVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -41,4 +45,32 @@ public class SchemeConfigController {
return jsonViewObject.success();
}
@ApiOperation(value = "根据车道获取灯组信息", notes = "根据车道获取灯组信息", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/getLightByLane",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = LightIdVO.class),
})
public JsonViewObject getLightByLane(@RequestBody LaneIdDTO laneIdDTO) {
LightIdVO lightIdVO = schemeConfigService.getLightByLane(laneIdDTO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(lightIdVO);
}
@ApiOperation(value = "根据灯组获取车道信息", notes = "根据灯组获取车道信息", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/getLanesByLight",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = LaneIdsVO.class),
})
public JsonViewObject getLanesByLight(@RequestBody LightIdDTO lightIdDTO) {
LaneIdsVO laneIdsVO = schemeConfigService.getLanesByLight(lightIdDTO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(laneIdsVO);
}
}
package net.wanji.web.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Kent HAN
* @date 2023/1/9 8:59
*/
@Data
public class LaneIdDTO {
@ApiModelProperty(value = "路口ID,如:c7e7b1f352dd4acab4a60088eb391cca", required = true)
private String crossId;
@ApiModelProperty(value = "车道ID", required = true)
private String laneId;
}
package net.wanji.web.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Kent HAN
* @date 2023/1/9 8:59
*/
@Data
public class LightIdDTO {
@ApiModelProperty(value = "路口ID,如:c7e7b1f352dd4acab4a60088eb391cca", required = true)
private String crossId;
@ApiModelProperty(value = "灯组ID", required = true)
private Integer lightId;
}
......@@ -21,4 +21,7 @@ public interface CrossLaneLightsMapper {
String selectLightsCodeByLaneId(@Param("laneId") String laneId);
Integer selectLightsIdByLaneId(@Param("crossId") String crossId, @Param("laneId") String laneId);
List<CrossLaneLightsPO> selectLanesByLightId(@Param("crossId") String crossId,
@Param("lightId") Integer lightId);
}
package net.wanji.web.service.scheme;
import net.wanji.web.dto.LaneIdDTO;
import net.wanji.web.dto.LightIdDTO;
import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.vo.scheme.LaneIdsVO;
import net.wanji.web.vo.scheme.LightIdVO;
/**
* @author Kent HAN
......@@ -8,4 +12,8 @@ import net.wanji.web.dto.SaveSchemeConfigDTO;
*/
public interface SchemeConfigService {
void saveSchemeConfig(SaveSchemeConfigDTO saveSchemeConfigDTO);
LightIdVO getLightByLane(LaneIdDTO laneIdDTO);
LaneIdsVO getLanesByLight(LightIdDTO lightIdDTO);
}
package net.wanji.web.service.scheme.impl;
import net.wanji.web.common.constant.ControlModeConst;
import net.wanji.web.dto.LaneIdDTO;
import net.wanji.web.dto.LightIdDTO;
import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.mapper.scheme.CrossLaneLightsMapper;
import net.wanji.web.mapper.scheme.CrossPhaseLightsMapper;
import net.wanji.web.mapper.scheme.CrossPhaseMapper;
import net.wanji.web.mapper.scheme.CrossSchemeMapper;
import net.wanji.web.mapper.scheme.LaneInfoMapper;
import net.wanji.web.po.scheme.CrossLaneLightsPO;
import net.wanji.web.po.scheme.CrossPhaseLightsPO;
import net.wanji.web.po.scheme.CrossPhasePO;
import net.wanji.web.po.scheme.CrossSchemePO;
import net.wanji.web.service.scheme.SchemeConfigService;
import net.wanji.web.vo.scheme.LaneIdsVO;
import net.wanji.web.vo.scheme.LightIdVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -51,6 +56,34 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
}
}
@Override
public LightIdVO getLightByLane(LaneIdDTO laneIdDTO) {
String crossId = laneIdDTO.getCrossId();
String laneId = laneIdDTO.getLaneId();
Integer lightId = crossLaneLightsMapper.selectLightsIdByLaneId(crossId, laneId);
LightIdVO lightIdVO = new LightIdVO();
lightIdVO.setCrossId(crossId);
lightIdVO.setLightId(lightId);
return lightIdVO;
}
@Override
public LaneIdsVO getLanesByLight(LightIdDTO lightIdDTO) {
String crossId = lightIdDTO.getCrossId();
LaneIdsVO laneIdsVO = new LaneIdsVO();
laneIdsVO.setCrossId(crossId);
Integer lightId = lightIdDTO.getLightId();
List<CrossLaneLightsPO> crossLaneLightsPOList = crossLaneLightsMapper.selectLanesByLightId(crossId, lightId);
List<String> laneIds = new ArrayList<>();
for (CrossLaneLightsPO crossLaneLightsPO : crossLaneLightsPOList) {
laneIds.add(crossLaneLightsPO.getLaneId());
}
laneIdsVO.setLaneIds(laneIds);
return laneIdsVO;
}
private void handleRingTime(SaveSchemeConfigDTO saveSchemeConfigDTO) {
// 更新方案基础信息表
updateCrossScheme(saveSchemeConfigDTO);
......
package net.wanji.web.vo.scheme;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Kent HAN
* @date 2023/1/9 8:56
*/
@Data
public class LaneIdsVO {
@ApiModelProperty(value = "路口ID", required = true)
private String crossId;
@ApiModelProperty(value = "车道ID列表", required = true)
private List<String> laneIds;
}
package net.wanji.web.vo.scheme;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Kent HAN
* @date 2023/1/9 8:56
*/
@Data
public class LightIdVO {
@ApiModelProperty(value = "路口ID", required = true)
private String crossId;
@ApiModelProperty(value = "灯组ID", required = true)
private Integer lightId;
}
......@@ -49,5 +49,12 @@
limit 1
</select>
<select id="selectLanesByLightId" resultMap="BaseResultMap">
select
id,lights_id,lane_id,cross_id,gmt_create,gmt_modified
from t_base_cross_lane_lights
where cross_id = #{crossId} and lights_id = #{lightId}
</select>
</mapper>
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