Commit c7ca62a5 authored by hanbing's avatar hanbing

方案管理-方案下发-中心控制

parent 657b691f
......@@ -4,7 +4,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.wanji.feign.pojo.result.JsonViewObject;
import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.LockPhaseDTO;
import net.wanji.web.dto.CrossIdAndPhaseIdDTO;
import net.wanji.web.dto.ScheduleIdDTO;
import net.wanji.web.dto.SchemeIdDTO;
import net.wanji.web.service.impl.SchemeSendServiceImpl;
......@@ -51,8 +51,30 @@ public class PlanSendController {
@ApiOperation(value = "模式切换-中心控制-相位锁定", notes = "模式切换-中心控制-相位锁定")
@PostMapping("/lockPhase")
public JsonViewObject lockPhase(@RequestBody LockPhaseDTO lockPhaseDTO) {
JsonViewObject jsonViewObject = schemeSendService.lockPhase(lockPhaseDTO);
public JsonViewObject lockPhase(@RequestBody CrossIdAndPhaseIdDTO crossIdAndPhaseIdDTO) {
JsonViewObject jsonViewObject = schemeSendService.lockPhase(crossIdAndPhaseIdDTO);
return jsonViewObject;
}
@ApiOperation(value = "模式切换-中心控制-全红控制", notes = "模式切换-中心控制-全红控制")
@PostMapping("/allRedControl")
public JsonViewObject allRedControl(@RequestBody CrossIdDTO crossIdDTO) {
JsonViewObject jsonViewObject = schemeSendService.allRedControl(crossIdDTO);
return jsonViewObject;
}
@ApiOperation(value = "模式切换-中心控制-黄闪控制", notes = "模式切换-中心控制-黄闪控制")
@PostMapping("/yellowLightControl")
public JsonViewObject yellowLightControl(@RequestBody CrossIdDTO crossIdDTO) {
JsonViewObject jsonViewObject = schemeSendService.yellowLightControl(crossIdDTO);
return jsonViewObject;
}
@ApiOperation(value = "模式切换-中心控制-恢复", notes = "模式切换-中心控制-恢复")
@PostMapping("/restore")
public JsonViewObject restore(@RequestBody CrossIdAndPhaseIdDTO crossIdAndPhaseIdDTO) {
JsonViewObject jsonViewObject = schemeSendService.restore(crossIdAndPhaseIdDTO);
return jsonViewObject;
}
}
......@@ -10,7 +10,7 @@ import lombok.Data;
* @date 2022/12/20 10:17
*/
@Data
public class LockPhaseDTO {
public class CrossIdAndPhaseIdDTO {
@ApiModelProperty(value = "路口ID,如:c7e7b1f352dd4acab4a60088eb391cca", required = true)
private String crossId;
@ApiModelProperty(value = "相位ID", required = true)
......
......@@ -2,7 +2,7 @@ package net.wanji.web.service;
import net.wanji.feign.pojo.result.JsonViewObject;
import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.LockPhaseDTO;
import net.wanji.web.dto.CrossIdAndPhaseIdDTO;
import net.wanji.web.dto.ScheduleIdDTO;
import net.wanji.web.dto.SchemeIdDTO;
......@@ -17,5 +17,11 @@ public interface SchemeSendService {
JsonViewObject nextStep(CrossIdDTO crossIdDTO);
JsonViewObject lockPhase(LockPhaseDTO lockPhaseDTO);
JsonViewObject lockPhase(CrossIdAndPhaseIdDTO crossIdAndPhaseIdDTO);
JsonViewObject allRedControl(CrossIdDTO crossIdDTO);
JsonViewObject yellowLightControl(CrossIdDTO crossIdDTO);
JsonViewObject restore(CrossIdAndPhaseIdDTO crossIdAndPhaseIdDTO);
}
package net.wanji.web.service.impl;
import net.wanji.feign.pojo.result.JsonViewObject;
import net.wanji.feign.pojo.vo.ControlCommandVO;
import net.wanji.feign.pojo.vo.LockControlVO;
import net.wanji.feign.pojo.vo.ScheduleSendVO;
import net.wanji.feign.pojo.vo.SchemeSendVO;
import net.wanji.feign.service.UtcFeignClients;
import net.wanji.web.dto.CrossIdAndPhaseIdDTO;
import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.LockPhaseDTO;
import net.wanji.web.dto.ScheduleIdDTO;
import net.wanji.web.dto.SchemeIdDTO;
import net.wanji.web.mapper.scheme.CrossPhaseMapper;
......@@ -18,6 +19,7 @@ import net.wanji.web.po.scheme.CrossPlanPO;
import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import net.wanji.web.po.scheme.CrossSchemePO;
import net.wanji.web.service.SchemeSendService;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
......@@ -96,13 +98,13 @@ public class SchemeSendServiceImpl implements SchemeSendService {
}
@Override
public JsonViewObject lockPhase(LockPhaseDTO lockPhaseDTO) {
public JsonViewObject lockPhase(CrossIdAndPhaseIdDTO crossIdAndPhaseIdDTO) {
LockControlVO lockControlVO = new LockControlVO();
lockControlVO.setCrossCode(lockPhaseDTO.getCrossId());
lockControlVO.setCrossCode(crossIdAndPhaseIdDTO.getCrossId());
lockControlVO.setCommand(1); // 控制标识:1是;0否
lockControlVO.setDuration(0); // 长期
Integer phaseId = lockPhaseDTO.getPhaseId();
Integer phaseId = crossIdAndPhaseIdDTO.getPhaseId();
CrossPhasePO crossPhasePO = crossPhaseMapper.selectById(phaseId);
String phaseNo = crossPhasePO.getPhaseNo();
......@@ -117,6 +119,87 @@ public class SchemeSendServiceImpl implements SchemeSendService {
return jsonViewObject.success();
}
@Override
public JsonViewObject allRedControl(CrossIdDTO crossIdDTO) {
ControlCommandVO commandVO = getControlCommandVO(crossIdDTO);
commandVO.setControlType(1); //1全红 2黄闪 3关灯
JsonViewObject jsonViewObject = utcFeignClients.allRedControl(commandVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-全红控制UTC服务调用异常");
}
return jsonViewObject.success();
}
@Override
public JsonViewObject yellowLightControl(CrossIdDTO crossIdDTO) {
ControlCommandVO commandVO = getControlCommandVO(crossIdDTO);
commandVO.setControlType(2); //1全红 2黄闪 3关灯
JsonViewObject jsonViewObject = utcFeignClients.yellowLightControl(commandVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-黄闪控制UTC服务调用异常");
}
return jsonViewObject.success();
}
@Override
public JsonViewObject restore(CrossIdAndPhaseIdDTO crossIdAndPhaseIdDTO) {
String crossId = crossIdAndPhaseIdDTO.getCrossId();
Integer phaseId = crossIdAndPhaseIdDTO.getPhaseId();
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
// 取消步进
// command 1开始步进,stepNum 0顺序步进
jsonViewObject = utcFeignClients.stepControl(crossId, 0, 0);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-步进控制UTC服务调用异常");
}
// 取消相位锁定
LockControlVO lockControlVO = new LockControlVO();
lockControlVO.setCrossCode(crossIdAndPhaseIdDTO.getCrossId());
lockControlVO.setCommand(0); // 控制标识:1是;0否
lockControlVO.setDuration(0); // 长期
CrossPhasePO crossPhasePO = crossPhaseMapper.selectById(phaseId);
String phaseNo = crossPhasePO.getPhaseNo();
List<Integer> phaseList = new ArrayList<>();
phaseList.add(Integer.parseInt(phaseNo));
lockControlVO.setPhaseList(phaseList);
jsonViewObject = utcFeignClients.lockControl(lockControlVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-锁定控制UTC服务调用异常");
}
// 取消全红控制
CrossIdDTO crossIdDTO = new CrossIdDTO();
crossIdDTO.setCrossId(crossId);
ControlCommandVO commandVO = getControlCommandVO(crossIdDTO);
commandVO.setCommand(0); //控制标识:1是;0否
commandVO.setControlType(1); //1全红 2黄闪 3关灯
jsonViewObject = utcFeignClients.allRedControl(commandVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-全红控制UTC服务调用异常");
}
// 取消黄闪控制
commandVO.setControlType(2); //1全红 2黄闪 3关灯
jsonViewObject = utcFeignClients.yellowLightControl(commandVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-黄闪控制UTC服务调用异常");
}
return jsonViewObject.success();
}
@NotNull
private static ControlCommandVO getControlCommandVO(CrossIdDTO crossIdDTO) {
ControlCommandVO commandVO = new ControlCommandVO();
commandVO.setCrossCode(crossIdDTO.getCrossId());
commandVO.setCommand(1); //控制标识:1是;0否
commandVO.setDuration(0); //长期
return commandVO;
}
private List<SchemeSendVO.Pattern> buildPatternList(String crossId, Integer schemeId) {
List<SchemeSendVO.Pattern> patternList = new ArrayList<>();
CrossSchemePO crossSchemePO = crossSchemeMapper.selectById(schemeId);
......
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