Commit c5341973 authored by duanruiming's avatar duanruiming

Merge remote-tracking branch 'origin/master'

parents 7690affd c7ca62a5
......@@ -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,9 +10,9 @@ 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)
private String phaseId;
private Integer phaseId;
}
......@@ -23,7 +23,7 @@ public interface CrossPlanMapper {
CrossPlanPO selectByCrossIdAndName(@Param("crossId") String crossId,
@Param("planName") String planName);
List<RunningPlanDTO.DailyPlanListElement> selectDailyPlanList(@Param("crossId") String crossId);
List<RunningPlanDTO.DailyPlanListElement> selectDailyPlanList(String crossId);
CrossPlanPO selectById(@Param("planId") Integer planId);
}
......@@ -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,8 +98,20 @@ public class SchemeSendServiceImpl implements SchemeSendService {
}
@Override
public JsonViewObject lockPhase(LockPhaseDTO lockPhaseDTO) {
public JsonViewObject lockPhase(CrossIdAndPhaseIdDTO crossIdAndPhaseIdDTO) {
LockControlVO lockControlVO = new LockControlVO();
lockControlVO.setCrossCode(crossIdAndPhaseIdDTO.getCrossId());
lockControlVO.setCommand(1); // 控制标识:1是;0否
lockControlVO.setDuration(0); // 长期
Integer phaseId = crossIdAndPhaseIdDTO.getPhaseId();
CrossPhasePO crossPhasePO = crossPhaseMapper.selectById(phaseId);
String phaseNo = crossPhasePO.getPhaseNo();
List<Integer> phaseList = new ArrayList<>();
phaseList.add(Integer.parseInt(phaseNo));
lockControlVO.setPhaseList(phaseList);
JsonViewObject jsonViewObject = utcFeignClients.lockControl(lockControlVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-锁定控制UTC服务调用异常");
......@@ -105,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);
......
......@@ -451,6 +451,11 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
for (int j = 0; j < phaseList.size(); j++) {
SaveSchemeConfigDTO.PhaseListElement phase = phaseList.get(j);
String phaseNo = phase.getPhaseNo();
try {
Integer.parseInt(phaseNo);
} catch (Exception e) {
throw new RuntimeException("相位编号必须为数字");
}
testPhaseNo(phaseNoSet, phaseNo);
Integer phaseType = phase.getPhaseType();
if (phaseType != 3) { // 实相位或虚相位
......@@ -564,9 +569,14 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
for (int i = 0; i < specialControlModeList.size(); i++) {
SaveSchemeConfigDTO.PhaseListElement phase = specialControlModeList.get(i);
String phaseNo = phase.getPhaseNo();
try {
Integer.parseInt(phaseNo);
} catch (Exception e) {
throw new RuntimeException("相位编号必须为数字");
}
testPhaseNo(phaseNoSet, phaseNo);
CrossPhasePO crossPhasePO = new CrossPhasePO();
crossPhasePO.setPhaseNo(phase.getPhaseNo());
crossPhasePO.setPhaseNo(phaseNo);
crossPhasePO.setSort(i + 1);
crossPhasePO.setCrossId(crossId);
crossPhasePO.setPlanId(schemeId);
......
......@@ -52,7 +52,7 @@
ON t1.cross_id = t2.cross_id AND t1.id = t2.plan_id
JOIN t_base_cross_scheme t3
ON t2.cross_id = t3.cross_id AND t2.scheme_id = t3.id
WHERE t1.cross_id = 'c7e7b1f352dd4acab4a60088eb391cca'
WHERE t1.cross_id = #{crossId}
</select>
<select id="selectById" resultType="net.wanji.web.po.scheme.CrossPlanPO">
......
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