Commit 69a0745d authored by duanruiming's avatar duanruiming

信号机控制指令-万集统一标准服务

parent cc4dce64
...@@ -4,11 +4,11 @@ import io.swagger.annotations.Api; ...@@ -4,11 +4,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.common.Result; import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.service.control.ControlCommandService; import net.wanji.utc.service.control.ControlCommandStrategyService;
import net.wanji.utc.vo.*; import net.wanji.utc.vo.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -23,98 +23,99 @@ import static net.wanji.utc.common.constant.Constants.*; ...@@ -23,98 +23,99 @@ import static net.wanji.utc.common.constant.Constants.*;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/controlCommand") @RequestMapping("/controlCommand")
@RequiredArgsConstructor
@Api(value = "控制指令接口", description = "控制指令接口", tags = "控制指令接口") @Api(value = "控制指令接口", description = "控制指令接口", tags = "控制指令接口")
public class ControlCommandController { public class ControlCommandController {
@Autowired private final ControlCommandStrategyService controlCommandStrategyService;
private ControlCommandService hkControlCommandService;
/** /**
* 信号机方案下发 * 信号机方案下发
* *
* @param schemeSendVO 方案下发VO * @param schemeSendVO 方案下发VO
* @return {@link Result}<{@link T}> * @return
*/ */
@ApiOperation(value = "信号机方案下发-基础方案下发", notes = "信号机方案下发-基础方案下发") @ApiOperation(value = "信号机方案下发-基础方案下发", notes = "信号机方案下发-基础方案下发")
@PostMapping("/schemeSend") @PostMapping("/schemeSend")
public <T> Result<T> schemeSend(@RequestBody SchemeSendVO schemeSendVO) throws Exception { public JsonViewObject schemeSend(@RequestBody @Validated SchemeSendVO schemeSendVO) throws Exception {
return hkControlCommandService.schemeSend(schemeSendVO); return controlCommandStrategyService.schemeSendStrategy(schemeSendVO);
} }
/** /**
* 下发信号机计划 * 下发信号机计划
* *
* @param planSendVO 计划下发VO * @param planSendVO 计划下发VO
* @return {@link Result}<{@link T}> * @return
*/ */
@ApiOperation(value = "计划下发-计划信息、时段信息", notes = "计划下发-计划信息、时段信息") @ApiOperation(value = "计划下发-计划信息、时段信息", notes = "计划下发-计划信息、时段信息")
@PostMapping("/planSend") @PostMapping("/planSend")
public <T> Result<T> planSend(@RequestBody PlanSendVO planSendVO) throws Exception { public JsonViewObject planSend(@RequestBody PlanSendVO planSendVO) throws Exception {
return hkControlCommandService.planSend(planSendVO); return controlCommandStrategyService.planSendStrategy(planSendVO);
} }
/** /**
* 时间表下发 * 时间表下发
* *
* @param scheduleSendVO 时间表下发VO * @param scheduleSendVO 时间表下发VO
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
@ApiOperation(value = "时间表下发-时间表信息", notes = "时间表下发-时间表信息") @ApiOperation(value = "时间表下发-时间表信息", notes = "时间表下发-时间表信息")
@PostMapping("/scheduleSend") @PostMapping("/scheduleSend")
public <T> Result<T> scheduleSend(@RequestBody ScheduleSendVO scheduleSendVO) throws Exception { public JsonViewObject scheduleSend(@RequestBody ScheduleSendVO scheduleSendVO) throws Exception {
return hkControlCommandService.scheduleSend(scheduleSendVO); return controlCommandStrategyService.scheduleSendStrategy(scheduleSendVO);
} }
/** /**
* 相位配时下发-(下发相位参数) * 相位配时下发-(下发相位参数)
* *
* @return {@link Result}<{@link T}> * @return
* @throws InterruptedException 中断异常 * @throws InterruptedException 中断异常
*/ */
@ApiOperation(value = "相位配时下发-(下发相位参数)", notes = "相位配时下发-(下发相位参数)") @ApiOperation(value = "相位配时下发-(下发相位参数)", notes = "相位配时下发-(下发相位参数)")
@PostMapping("/phaseTimingSend") @PostMapping("/phaseTimingSend")
public <T> Result<T> phaseTimingSend(@RequestBody PhaseTimingSendVO phaseTimingSendVO) throws Exception { public JsonViewObject phaseTimingSend(@RequestBody PhaseTimingSendVO phaseTimingSendVO) throws Exception {
return hkControlCommandService.phaseTimingSend(phaseTimingSendVO); return controlCommandStrategyService.phaseTimingSendStrategy(phaseTimingSendVO);
} }
/** /**
* 全红控制 * 全红控制
* *
* @param commandVO 控制指令VO * @param commandVO 控制指令VO
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
@ApiOperation(value = "全红控制-路口全红控制/恢复", notes = "全红控制-路口全红控制/恢复") @ApiOperation(value = "全红控制-路口全红控制/恢复", notes = "全红控制-路口全红控制/恢复")
@PostMapping("/allRedControl") @PostMapping("/allRedControl")
public <T> Result<T> allRedControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception { public JsonViewObject allRedControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.setSignalControl(commandVO.getCrossCode(), commandVO.getCommand(), ALL_RED_CONTROL); return controlCommandStrategyService.setSignalControlStrategy(commandVO.getCrossCode(), commandVO.getCommand(), ALL_RED_CONTROL);
} }
/** /**
* 黄闪控制 * 黄闪控制
* *
* @param commandVO 控制指令VO * @param commandVO 控制指令VO
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
@ApiOperation(value = "黄闪控制-路口黄闪控制/恢复", notes = "黄闪控制-路口黄闪控制/恢复") @ApiOperation(value = "黄闪控制-路口黄闪控制/恢复", notes = "黄闪控制-路口黄闪控制/恢复")
@PostMapping("/yellowLightControl") @PostMapping("/yellowLightControl")
public <T> Result<T> yellowLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception { public JsonViewObject yellowLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.setSignalControl(commandVO.getCrossCode(), commandVO.getCommand(), YELLOW_LIGHT_CONTROL); return controlCommandStrategyService.setSignalControlStrategy(commandVO.getCrossCode(), commandVO.getCommand(), YELLOW_LIGHT_CONTROL);
} }
/** /**
* 关灯控制 * 关灯控制
* *
* @param commandVO 控制指令VO * @param commandVO 控制指令VO
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
@ApiOperation(value = "关灯控制-路口关灯控制/开灯", notes = "关灯控制-路口关灯控制/开灯") @ApiOperation(value = "关灯控制-路口关灯控制/开灯", notes = "关灯控制-路口关灯控制/开灯")
@PostMapping("/closeLightControl") @PostMapping("/closeLightControl")
public <T> Result<T> closeLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception { public JsonViewObject closeLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.setSignalControl(commandVO.getCrossCode(), commandVO.getCommand(), CLOSE_LIGHT_CONTROL); return controlCommandStrategyService.setSignalControlStrategy(commandVO.getCrossCode(), commandVO.getCommand(), CLOSE_LIGHT_CONTROL);
} }
/** /**
...@@ -123,7 +124,7 @@ public class ControlCommandController { ...@@ -123,7 +124,7 @@ public class ControlCommandController {
* @param code 信号id * @param code 信号id
* @param command 命令 * @param command 命令
* @param stepNum 一步num * @param stepNum 一步num
* @return {@link Result}<{@link T}> * @return
*/ */
@ApiOperation(value = "步进控制-步进控制/恢复", notes = "步进控制-步进控制/恢复") @ApiOperation(value = "步进控制-步进控制/恢复", notes = "步进控制-步进控制/恢复")
@ApiImplicitParams({ @ApiImplicitParams({
...@@ -131,35 +132,35 @@ public class ControlCommandController { ...@@ -131,35 +132,35 @@ public class ControlCommandController {
@ApiImplicitParam(name = "stepNum", value = "0 顺序步进 n 跳过n个相位", paramType = "query", required = true, dataType = "int"), @ApiImplicitParam(name = "stepNum", value = "0 顺序步进 n 跳过n个相位", paramType = "query", required = true, dataType = "int"),
}) })
@PostMapping("/stepControl") @PostMapping("/stepControl")
public <T> Result<T> stepControl(@RequestParam String code, public JsonViewObject stepControl(@RequestParam String code,
@RequestParam Integer command, @RequestParam Integer command,
@RequestParam int stepNum) throws Exception { @RequestParam int stepNum) throws Exception {
return hkControlCommandService.stepControl(code, command, stepNum); return controlCommandStrategyService.stepControlStrategy(code, command, stepNum);
} }
/** /**
* 恢复时间表 * 恢复时间表
* *
* @param code 信号id * @param code 信号id
* @return {@link Result}<{@link T}> * @return
*/ */
@ApiOperation(value = "恢复时间表-恢复路口时间表执行", notes = "恢复时间表-恢复路口时间表执行") @ApiOperation(value = "恢复时间表-恢复路口时间表执行", notes = "恢复时间表-恢复路口时间表执行")
@PostMapping("/recoverSchedule") @PostMapping("/recoverSchedule")
public <T> Result<T> recoverSchedule(@RequestParam String code) throws Exception { public JsonViewObject recoverSchedule(@RequestParam String code) throws Exception {
return hkControlCommandService.recoverSchedule(code); return controlCommandStrategyService.recoverScheduleStrategy(code);
} }
/** /**
* 锁定控制 * 锁定控制
* *
* @param commandVO 控制指令VO * @param commandVO 控制指令VO
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
@ApiOperation(value = "锁定控制-相位锁定/解锁", notes = "锁定控制-相位锁定/解锁") @ApiOperation(value = "锁定控制-相位锁定/解锁", notes = "锁定控制-相位锁定/解锁")
@PostMapping("/lockControl") @PostMapping("/lockControl")
public <T> Result<T> lockControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception { public JsonViewObject lockControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.lockControl(commandVO); return controlCommandStrategyService.lockControlStrategy(commandVO);
} }
/** /**
...@@ -167,7 +168,7 @@ public class ControlCommandController { ...@@ -167,7 +168,7 @@ public class ControlCommandController {
*/ */
@ApiOperation(value = "相位差下发", notes = "相位差下发") @ApiOperation(value = "相位差下发", notes = "相位差下发")
@PostMapping("/phaseDiffSend") @PostMapping("/phaseDiffSend")
public <T> Result<T> phaseDiffSend() { public JsonViewObject phaseDiffSend() {
return hkControlCommandService.phaseDiffSend(); return controlCommandStrategyService.phaseDiffSendStrategy();
} }
} }
package net.wanji.utc.service.control; package net.wanji.utc.service.control;
import net.wanji.utc.common.Result; import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.service.rpc.RpcService;
import net.wanji.utc.vo.*; import net.wanji.utc.vo.*;
/** /**
...@@ -9,37 +10,37 @@ import net.wanji.utc.vo.*; ...@@ -9,37 +10,37 @@ import net.wanji.utc.vo.*;
* @author wuxiaokai * @author wuxiaokai
* @date 2022/11/15 14:02:36 * @date 2022/11/15 14:02:36
*/ */
public interface ControlCommandService { public interface ControlCommandService extends RpcService {
/** /**
* 方案下发 * 方案下发
*/ */
<T> Result<T> schemeSend(SchemeSendVO schemeSendVO) throws Exception; JsonViewObject schemeSend(SchemeSendVO schemeSendVO) throws Exception;
/** /**
* 计划下发 * 计划下发
* *
* @param planSendVO 计划下发VO * @param planSendVO 计划下发VO
* @return {@link Result}<{@link T}> * @return
*/ */
<T> Result<T> planSend(PlanSendVO planSendVO) throws Exception; JsonViewObject planSend(PlanSendVO planSendVO) throws Exception;
/** /**
* 时间表下发 * 时间表下发
* *
* @param scheduleSendVO 时间表下发VO * @param scheduleSendVO 时间表下发VO
* @return {@link Result}<{@link T}> * @return
*/ */
<T> Result<T> scheduleSend(ScheduleSendVO scheduleSendVO) throws Exception; JsonViewObject scheduleSend(ScheduleSendVO scheduleSendVO) throws Exception;
/** /**
* 锁定控制 * 锁定控制
* *
* @param commandVO 控制指令VO * @param commandVO 控制指令VO
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
<T> Result<T> lockControl(ControlCommandVO commandVO) throws Exception; JsonViewObject lockControl(ControlCommandVO commandVO) throws Exception;
/** /**
* 步进控制 * 步进控制
...@@ -47,10 +48,10 @@ public interface ControlCommandService { ...@@ -47,10 +48,10 @@ public interface ControlCommandService {
* @param code 信号机编号 * @param code 信号机编号
* @param command 1 开始步进 0 取消步进 * @param command 1 开始步进 0 取消步进
* @param stepNum 0 顺序步进 n 跳过n个相位 * @param stepNum 0 顺序步进 n 跳过n个相位
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
<T> Result<T> stepControl(String code, Integer command, Integer stepNum) throws Exception; JsonViewObject stepControl(String code, Integer command, Integer stepNum) throws Exception;
/** /**
* 设置信号机控制模式 * 设置信号机控制模式
...@@ -58,30 +59,30 @@ public interface ControlCommandService { ...@@ -58,30 +59,30 @@ public interface ControlCommandService {
* @param code 信号机编号 * @param code 信号机编号
* @param command 指令 1 开 0 关 * @param command 指令 1 开 0 关
* @param commandType 命令类型 * @param commandType 命令类型
* @return {@link Result}<{@link T}> * @return
* @throws Exception 异常 * @throws Exception 异常
*/ */
<T> Result<T> setSignalControl(String code, Integer command, Integer commandType) throws Exception; JsonViewObject setSignalControl(String code, Integer command, Integer commandType) throws Exception;
/** /**
* 恢复时间表 * 恢复时间表
* *
* @param code 信号机编号 * @param code 信号机编号
* @return {@link Result}<{@link T}> * @return
*/ */
<T> Result<T> recoverSchedule(String code) throws Exception; JsonViewObject recoverSchedule(String code) throws Exception;
/** /**
* 相位配时下发 * 相位配时下发
* *
* @return {@link Result}<{@link T}> * @return
* @throws InterruptedException 中断异常 * @throws InterruptedException 中断异常
*/ */
<T> Result<T> phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception; JsonViewObject phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception;
/** /**
* 相位差下发 * 相位差下发
*/ */
<T> Result<T> phaseDiffSend(); JsonViewObject phaseDiffSend();
} }
package net.wanji.utc.service.control;
import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.vo.*;
/**
* @author duanruiming
* @date 2023/01/12 9:44
*/
public interface ControlCommandStrategyService {
/**
* 方案下发
*/
JsonViewObject schemeSendStrategy(SchemeSendVO schemeSendVO) throws Exception;
/**
* 计划下发
*
* @param planSendVO 计划下发VO
* @return
*/
JsonViewObject planSendStrategy(PlanSendVO planSendVO) throws Exception;
/**
* 时间表下发
*
* @param scheduleSendVO 时间表下发VO
* @return
*/
JsonViewObject scheduleSendStrategy(ScheduleSendVO scheduleSendVO) throws Exception;
/**
* 锁定控制
*
* @param commandVO 控制指令VO
* @return
* @throws Exception 异常
*/
JsonViewObject lockControlStrategy(ControlCommandVO commandVO) throws Exception;
/**
* 步进控制
*
* @param code 信号机编号
* @param command 1 开始步进 0 取消步进
* @param stepNum 0 顺序步进 n 跳过n个相位
* @return
* @throws Exception 异常
*/
JsonViewObject stepControlStrategy(String code, Integer command, Integer stepNum) throws Exception;
/**
* 设置信号机控制模式
*
* @param code 信号机编号
* @param command 指令 1 开 0 关
* @param commandType 命令类型
* @return
* @throws Exception 异常
*/
JsonViewObject setSignalControlStrategy(String code, Integer command, Integer commandType) throws Exception;
/**
* 恢复时间表
*
* @param code 信号机编号
* @return
*/
JsonViewObject recoverScheduleStrategy(String code) throws Exception;
/**
* 相位配时下发
*
* @return
* @throws InterruptedException 中断异常
*/
JsonViewObject phaseTimingSendStrategy(PhaseTimingSendVO phaseTimingSendVO) throws Exception;
/**
* 相位差下发
*/
JsonViewObject phaseDiffSendStrategy();
}
package net.wanji.utc.service.control.impl;
import lombok.RequiredArgsConstructor;
import net.wanji.utc.common.typeenum.BasicEnum;
import net.wanji.utc.common.typeenum.DateStyle;
import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.mapper.*;
import net.wanji.utc.po.*;
import net.wanji.utc.service.control.ControlCommandStrategyService;
import net.wanji.utc.service.control.ControlCommandService;
import net.wanji.utc.util.StringUtils;
import net.wanji.utc.vo.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* @author duanruiming
* @date 2023/01/12 9:53
*/
@Service
@RequiredArgsConstructor
public class ControlCommandStrategyServiceImpl implements ControlCommandStrategyService {
@Resource(name = "hkControlCommandService")
ControlCommandService hkControlCommandService;
@Resource(name = "wanJiControlCommandService")
ControlCommandService wanJiControlCommandService;
private final CrossInfoMapper crossInfoMapper;
private final ManufacturerInfoMapper manufacturerInfoMapper;
private final CrossSchemeMapper crossSchemeMapper;
private final CrossPhaseMapper crossPhaseMapper;
private final CrossSectionMapper crossSectionMapper;
private final CrossPlanMapper crossPlanMapper;
private final CrossSchedulesMapper crossSchedulesMapper;
/**
* 通过路口编号获取厂商编码
*
* @param crossId
* @return
*/
public String getManufacturerCodeByCrossId(String crossId) {
// 获取厂商ID和信号机ID
CrossInfoPO crossInfoPO = crossInfoMapper.selectByPrimaryKey(crossId);
String signalId = crossInfoPO.getCode();
Integer manufacturerId = crossInfoPO.getManufacturerId();
// 获取厂商代码
ManufacturerInfoPO manufacturerInfoPO = manufacturerInfoMapper.selectById(manufacturerId);
return manufacturerInfoPO.getCode();
}
@Transactional(rollbackFor = Exception.class)
@Override
public JsonViewObject schemeSendStrategy(SchemeSendVO schemeSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(schemeSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.schemeSend(schemeSendVO);
} else {
jsonViewObject = wanJiControlCommandService.schemeSend(schemeSendVO);
}
schemeSendDataInsert(schemeSendVO);
return jsonViewObject;
}
private void schemeSendDataInsert(SchemeSendVO schemeSendVO) {
// 入库操作
List<CrossSchemePO> crossSchemePOList = new ArrayList<>();
schemeSendVO.getPatternList().forEach(pattern -> {
CrossSchemePO crossSchemePO = new CrossSchemePO();
crossSchemePO.setSchemeNo(pattern.getPatternNo());
crossSchemePO.setName(pattern.getPatternName());
crossSchemePO.setCrossId(schemeSendVO.getCrossCode());
crossSchemePO.setCycle(Integer.parseInt(pattern.getCycle()));
crossSchemePO.setCoordPhase(Integer.parseInt(pattern.getCoordPhase()));
crossSchemePO.setOffset(Integer.parseInt(pattern.getOffset()));
crossSchemePO.setSource(2);
crossSchemePO.setIsDeleted(0);
crossSchemePOList.add(crossSchemePO);
pattern.getRings().forEach(ring -> {
List<CrossPhasePO> crossPhasePOList = new ArrayList<>();
ring.getPhaseList().forEach(phase -> {
CrossPhasePO crossPhasePO = new CrossPhasePO();
crossPhasePO.setPhaseNo(phase.getPhaseNo());
crossPhasePO.setName(phase.getPhaseName());
crossPhasePO.setSort(Integer.parseInt(phase.getSort()));
crossPhasePO.setCrossId(schemeSendVO.getCrossCode());
crossPhasePO.setPlanId(Integer.parseInt(pattern.getPatternNo()));
crossPhasePO.setRingNo(Integer.parseInt(ring.getRingNo()));
crossPhasePO.setControlMode(Integer.parseInt(phase.getControlMode()));
crossPhasePO.setPhaseTime(Integer.parseInt(phase.getPhaseTime()));
crossPhasePO.setGreenTime(Integer.parseInt(phase.getGreenTime()));
crossPhasePO.setGreenFlashTime(Integer.parseInt(phase.getGreenFlashTime()));
crossPhasePO.setPedFlashTime(Integer.parseInt(phase.getPedFlashTime()));
crossPhasePO.setYellowTime(Integer.parseInt(phase.getYellowTime()));
crossPhasePO.setRedTime(Integer.parseInt(phase.getRedTime()));
crossPhasePO.setMinGreenTime(Integer.parseInt(phase.getMinGreenTime()));
crossPhasePO.setMaxGreenTime(Integer.parseInt(phase.getMaxGreenTime()));
crossPhasePOList.add(crossPhasePO);
});
// 入库路口相位表
crossPhaseMapper.insertBatch(crossPhasePOList);
});
});
// 入库信号方案表
crossSchemeMapper.insertBatch(crossSchemePOList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public JsonViewObject planSendStrategy(PlanSendVO planSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(planSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.planSend(planSendVO);
} else {
jsonViewObject = wanJiControlCommandService.planSend(planSendVO);
}
planSendDataInsert(planSendVO);
return jsonViewObject;
}
private void planSendDataInsert(PlanSendVO planSendVO) {
List<CrossPlanPO> crossPlanPOList = new ArrayList<>();
planSendVO.getPlanList().forEach(plan -> {
CrossPlanPO crossPlanPO = new CrossPlanPO();
crossPlanPO.setPlanNo(plan.getPlanNo());
crossPlanPO.setName(plan.getPlanDescribe());
crossPlanPO.setCrossId(planSendVO.getCrossCode());
crossPlanPOList.add(crossPlanPO);
List<CrossSectionPO> crossSectionPOList = new ArrayList<>();
plan.getSectionList().forEach(section -> {
CrossSectionPO crossSectionPO = new CrossSectionPO();
crossSectionPO.setSectionNo(section.getSectionNo());
crossSectionPO.setStartTime(section.getBeginTime());
crossSectionPO.setEndTime(section.getEndTime());
crossSectionPO.setCrossId(planSendVO.getCrossCode());
crossSectionPO.setPlanId(Integer.parseInt(plan.getPlanNo()));
crossSectionPO.setControlMode(Integer.parseInt(section.getControlMode()));
crossSectionPO.setScemeId(Integer.parseInt(section.getPatternNo()));
crossSectionPOList.add(crossSectionPO);
});
// 入库路口时段表
crossSectionMapper.insertBatch(crossSectionPOList);
});
// 入库路口计划表
crossPlanMapper.insertBatch(crossPlanPOList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public JsonViewObject scheduleSendStrategy(ScheduleSendVO scheduleSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(scheduleSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.scheduleSend(scheduleSendVO);
} else {
jsonViewObject = wanJiControlCommandService.scheduleSend(scheduleSendVO);
}
scheduleSendDataInsert(scheduleSendVO);
return jsonViewObject;
}
private void scheduleSendDataInsert(ScheduleSendVO scheduleSendVO) {
// 1、入库操作
SimpleDateFormat sdf = new SimpleDateFormat(DateStyle.YYYY_MM_DD.getValue());
ArrayList<CrossSchedulesPO> crossSchedulesPOS = new ArrayList<>();
scheduleSendVO.getSchedules().forEach(schedule -> {
schedule.getWeeks().forEach(week -> {
CrossSchedulesPO schedulesPO = new CrossSchedulesPO();
if (week.getWeekNum() >= 6) {
schedulesPO.setName("周末");
} else {
schedulesPO.setName("工作日");
}
schedulesPO.setCrossId(scheduleSendVO.getCrossCode());
schedulesPO.setPlanId(week.getPlanNo());
schedulesPO.setWeek(week.getWeekNum());
schedulesPO.setSpecialDate(null);
crossSchedulesPOS.add(schedulesPO);
});
schedule.getSpecialDays().forEach(specialDay -> {
CrossSchedulesPO schedulesPO = new CrossSchedulesPO();
schedulesPO.setName("特殊日期");
schedulesPO.setCrossId(scheduleSendVO.getCrossCode());
schedulesPO.setPlanId(specialDay.getPlanNo());
schedulesPO.setWeek(null);
try {
schedulesPO.setSpecialDate(sdf.parse(specialDay.getDateStr()));
} catch (ParseException e) {
schedulesPO.setSpecialDate(null);
}
crossSchedulesPOS.add(schedulesPO);
});
});
// 入库时间表
crossSchedulesMapper.insertBatch(crossSchedulesPOS);
}
@Override
public JsonViewObject lockControlStrategy(ControlCommandVO commandVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(commandVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.lockControl(commandVO);
} else {
jsonViewObject = wanJiControlCommandService.lockControl(commandVO);
}
return jsonViewObject;
}
@Override
public JsonViewObject stepControlStrategy(String crossId, Integer command, Integer stepNum) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(crossId);
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.stepControl(crossId, command, stepNum);
} else {
jsonViewObject = wanJiControlCommandService.stepControl(crossId, command, stepNum);
}
return jsonViewObject;
}
@Override
public JsonViewObject setSignalControlStrategy(String crossId, Integer command, Integer commandType) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(crossId);
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.setSignalControl(crossId, command, commandType);
} else {
jsonViewObject = wanJiControlCommandService.setSignalControl(crossId, command, commandType);
}
return jsonViewObject;
}
@Override
public JsonViewObject recoverScheduleStrategy(String crossId) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(crossId);
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.recoverSchedule(crossId);
} else {
jsonViewObject = wanJiControlCommandService.recoverSchedule(crossId);
}
return jsonViewObject;
}
@Override
public JsonViewObject phaseTimingSendStrategy(PhaseTimingSendVO phaseTimingSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(phaseTimingSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.phaseTimingSend(phaseTimingSendVO);
} else {
jsonViewObject = wanJiControlCommandService.phaseTimingSend(phaseTimingSendVO);
}
return jsonViewObject;
}
@Override
public JsonViewObject phaseDiffSendStrategy() {
return null;
}
}
...@@ -7,16 +7,17 @@ import com.google.common.collect.Lists; ...@@ -7,16 +7,17 @@ import com.google.common.collect.Lists;
import com.hikvision.artemis.sdk.ArtemisHttpUtil; import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig; import com.hikvision.artemis.sdk.config.ArtemisConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.common.Result;
import net.wanji.utc.common.baseentity.BaseCrossInfo; import net.wanji.utc.common.baseentity.BaseCrossInfo;
import net.wanji.utc.common.exception.ControlException; import net.wanji.utc.common.exception.ControlException;
import net.wanji.utc.common.typeenum.BasicEnum; import net.wanji.utc.common.typeenum.BasicEnum;
import net.wanji.utc.common.typeenum.DateStyle;
import net.wanji.utc.dto.hk.DownloadPlanSpandsDTO; import net.wanji.utc.dto.hk.DownloadPlanSpandsDTO;
import net.wanji.utc.dto.hk.DownloadScheduleDTO; import net.wanji.utc.dto.hk.DownloadScheduleDTO;
import net.wanji.utc.dto.hk.DownloadTimeSpandsDTO; import net.wanji.utc.dto.hk.DownloadTimeSpandsDTO;
import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.mapper.*; import net.wanji.utc.mapper.*;
import net.wanji.utc.po.*; import net.wanji.utc.po.CrossInfoPO;
import net.wanji.utc.po.CrossPhasePO;
import net.wanji.utc.po.ManufacturerInfoPO;
import net.wanji.utc.service.control.ControlCommandService; import net.wanji.utc.service.control.ControlCommandService;
import net.wanji.utc.service.runninginfo.HkLightsStatusService; import net.wanji.utc.service.runninginfo.HkLightsStatusService;
import net.wanji.utc.util.FieldUtil; import net.wanji.utc.util.FieldUtil;
...@@ -25,8 +26,6 @@ import net.wanji.utc.vo.*; ...@@ -25,8 +26,6 @@ import net.wanji.utc.vo.*;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -69,11 +68,10 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -69,11 +68,10 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
private ManufacturerInfoMapper manufacturerInfoMapper; private ManufacturerInfoMapper manufacturerInfoMapper;
@Override @Override
public <T> Result<T> schemeSend(SchemeSendVO schemeSendVO) throws Exception { public JsonViewObject schemeSend(SchemeSendVO schemeSendVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
// 厂商 HK // 厂商 HK
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(schemeSendVO.getCrossCode()); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(schemeSendVO.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 1、组装参数, 下发海康信号机 // 1、组装参数, 下发海康信号机
DownloadPlanSpandsDTO dto = new DownloadPlanSpandsDTO(); DownloadPlanSpandsDTO dto = new DownloadPlanSpandsDTO();
// 将路口code转换为信号机code // 将路口code转换为信号机code
...@@ -117,63 +115,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -117,63 +115,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSONObject obj = JSON.parseObject(strResult); JSONObject obj = JSON.parseObject(strResult);
if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) { if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) {
// 入库操作 return jsonViewObject.success("海康下发信号机方案成功");
List<CrossSchemePO> crossSchemePOList = new ArrayList<>();
schemeSendVO.getPatternList().forEach(pattern -> {
CrossSchemePO crossSchemePO = new CrossSchemePO();
crossSchemePO.setSchemeNo(pattern.getPatternNo());
crossSchemePO.setName(pattern.getPatternName());
crossSchemePO.setCrossId(schemeSendVO.getCrossCode());
crossSchemePO.setCycle(Integer.parseInt(pattern.getCycle()));
crossSchemePO.setCoordPhase(Integer.parseInt(pattern.getCoordPhase()));
crossSchemePO.setOffset(Integer.parseInt(pattern.getOffset()));
crossSchemePO.setSource(2);
crossSchemePO.setIsDeleted(0);
crossSchemePOList.add(crossSchemePO);
pattern.getRings().forEach(ring -> {
List<CrossPhasePO> crossPhasePOList = new ArrayList<>();
ring.getPhaseList().forEach(phase -> {
CrossPhasePO crossPhasePO = new CrossPhasePO();
crossPhasePO.setPhaseNo(phase.getPhaseNo());
crossPhasePO.setName(phase.getPhaseName());
crossPhasePO.setSort(Integer.parseInt(phase.getSort()));
crossPhasePO.setCrossId(schemeSendVO.getCrossCode());
crossPhasePO.setPlanId(Integer.parseInt(pattern.getPatternNo()));
crossPhasePO.setRingNo(Integer.parseInt(ring.getRingNo()));
crossPhasePO.setControlMode(Integer.parseInt(phase.getControlMode()));
crossPhasePO.setPhaseTime(Integer.parseInt(phase.getPhaseTime()));
crossPhasePO.setGreenTime(Integer.parseInt(phase.getGreenTime()));
crossPhasePO.setGreenFlashTime(Integer.parseInt(phase.getGreenFlashTime()));
crossPhasePO.setPedFlashTime(Integer.parseInt(phase.getPedFlashTime()));
crossPhasePO.setYellowTime(Integer.parseInt(phase.getYellowTime()));
crossPhasePO.setRedTime(Integer.parseInt(phase.getRedTime()));
crossPhasePO.setMinGreenTime(Integer.parseInt(phase.getMinGreenTime()));
crossPhasePO.setMaxGreenTime(Integer.parseInt(phase.getMaxGreenTime()));
crossPhasePOList.add(crossPhasePO);
});
// 入库路口相位表
crossPhaseMapper.insertBatch(crossPhasePOList);
});
});
// 入库信号方案表
crossSchemeMapper.insertBatch(crossSchemePOList);
return Result.success("下发信号机方案成功");
}
return Result.error(obj.getString("msg"));
} else {
return null;
} }
return jsonViewObject.fail(obj.getString("msg"));
} }
@Override @Override
public <T> Result<T> planSend(PlanSendVO planSendVO) throws Exception { public JsonViewObject planSend(PlanSendVO planSendVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
// 厂商 HK // 厂商 HK
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(planSendVO.getCrossCode()); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(planSendVO.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 1、下发信号机计划拼接参数 // 1、下发信号机计划拼接参数
DownloadTimeSpandsDTO downloadTimeSpandsDTO = new DownloadTimeSpandsDTO(); DownloadTimeSpandsDTO downloadTimeSpandsDTO = new DownloadTimeSpandsDTO();
List<DownloadTimeSpandsDTO.Data> dataList = new ArrayList<>(); List<DownloadTimeSpandsDTO.Data> dataList = new ArrayList<>();
...@@ -208,46 +159,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -208,46 +159,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(fieldMap), null, null, "application/json", null); JSON.toJSONString(fieldMap), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult); JSONObject obj = JSON.parseObject(strResult);
if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) { if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) {
// 2、入库操作 return jsonViewObject.success("下发信号机计划成功");
List<CrossPlanPO> crossPlanPOList = new ArrayList<>();
planSendVO.getPlanList().forEach(plan -> {
CrossPlanPO crossPlanPO = new CrossPlanPO();
crossPlanPO.setPlanNo(plan.getPlanNo());
crossPlanPO.setName(plan.getPlanDescribe());
crossPlanPO.setCrossId(planSendVO.getCrossCode());
crossPlanPOList.add(crossPlanPO);
List<CrossSectionPO> crossSectionPOList = new ArrayList<>();
plan.getSectionList().forEach(section -> {
CrossSectionPO crossSectionPO = new CrossSectionPO();
crossSectionPO.setSectionNo(section.getSectionNo());
crossSectionPO.setStartTime(section.getBeginTime());
crossSectionPO.setEndTime(section.getEndTime());
crossSectionPO.setCrossId(planSendVO.getCrossCode());
crossSectionPO.setPlanId(Integer.parseInt(plan.getPlanNo()));
crossSectionPO.setControlMode(Integer.parseInt(section.getControlMode()));
crossSectionPO.setScemeId(Integer.parseInt(section.getPatternNo()));
crossSectionPOList.add(crossSectionPO);
});
// 入库路口时段表
crossSectionMapper.insertBatch(crossSectionPOList);
});
// 入库路口计划表
crossPlanMapper.insertBatch(crossPlanPOList);
return Result.success("下发信号机计划成功");
}
return Result.error(obj.getString("msg"));
} else {
// todo else
return null;
} }
return jsonViewObject.fail(obj.getString("msg"));
} }
@Override @Override
public <T> Result<T> scheduleSend(ScheduleSendVO param) throws Exception { public JsonViewObject scheduleSend(ScheduleSendVO param) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
// 厂商 HK // 厂商 HK
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(param.getCrossCode()); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(param.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 1、通过获取当前运行的日期数据,获取最新的日期方案id // 1、通过获取当前运行的日期数据,获取最新的日期方案id
JSONArray body = new JSONArray(); JSONArray body = new JSONArray();
//body.add(param.getCrossCode()); //body.add(param.getCrossCode());
...@@ -331,54 +252,15 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -331,54 +252,15 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(fieldMap), null, null, "application/json", null); JSON.toJSONString(fieldMap), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(updateResult); JSONObject obj = JSON.parseObject(updateResult);
if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) { if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) {
return jsonViewObject.success("时间表下发成功");
// 1、入库操作
SimpleDateFormat sdf = new SimpleDateFormat(DateStyle.YYYY_MM_DD.getValue());
ArrayList<CrossSchedulesPO> crossSchedulesPOS = new ArrayList<>();
param.getSchedules().forEach(schedule -> {
schedule.getWeeks().forEach(week -> {
CrossSchedulesPO schedulesPO = new CrossSchedulesPO();
if (week.getWeekNum() >= 6) {
schedulesPO.setName("周末");
} else {
schedulesPO.setName("工作日");
}
schedulesPO.setCrossId(param.getCrossCode());
schedulesPO.setPlanId(week.getPlanNo());
schedulesPO.setWeek(week.getWeekNum());
schedulesPO.setSpecialDate(null);
crossSchedulesPOS.add(schedulesPO);
});
schedule.getSpecialDays().forEach(specialDay -> {
CrossSchedulesPO schedulesPO = new CrossSchedulesPO();
schedulesPO.setName("特殊日期");
schedulesPO.setCrossId(param.getCrossCode());
schedulesPO.setPlanId(specialDay.getPlanNo());
schedulesPO.setWeek(null);
try {
schedulesPO.setSpecialDate(sdf.parse(specialDay.getDateStr()));
} catch (ParseException e) {
schedulesPO.setSpecialDate(null);
}
crossSchedulesPOS.add(schedulesPO);
});
});
// 入库时间表
crossSchedulesMapper.insertBatch(crossSchedulesPOS);
return Result.success("时间表下发成功");
}
return Result.error(obj.getString("msg"));
} else {
// todo else
return null;
} }
return jsonViewObject.fail(obj.getString("msg"));
} }
@Override @Override
public <T> Result<T> lockControl(ControlCommandVO commandVO) throws Exception { public JsonViewObject lockControl(ControlCommandVO commandVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(commandVO.getCrossCode()); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(commandVO.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
if (commandVO.getCommand().equals(TRUE)) { if (commandVO.getCommand().equals(TRUE)) {
Map<String, Object> param = new HashMap<String, Object>() { Map<String, Object> param = new HashMap<String, Object>() {
{ {
...@@ -415,17 +297,14 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -415,17 +297,14 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null); JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult); JSONObject obj = JSON.parseObject(strResult);
if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) { if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) {
return Result.success("相位锁定成功"); return jsonViewObject.success("相位锁定成功");
} }
return Result.error(obj.getString("msg")); return jsonViewObject.fail(obj.getString("msg"));
} else { } else {
//return controlSignal(commandVO.getCrossCode(), UNLOCK_RUNNING_CONTROL); //return controlSignal(commandVO.getCrossCode(), UNLOCK_RUNNING_CONTROL);
return controlSignal(manufacturerInfoPO.getName(), UNLOCK_RUNNING_CONTROL); return controlSignal(manufacturerInfoPO.getName(), UNLOCK_RUNNING_CONTROL);
} }
} else {
// todo else
return null;
}
} }
/** /**
...@@ -460,9 +339,9 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -460,9 +339,9 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
} }
@Override @Override
public <T> Result<T> stepControl(String code, Integer command, Integer stepNum) throws Exception { public JsonViewObject stepControl(String code, Integer command, Integer stepNum) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(code); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(code);
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
if (command.equals(TRUE)) { if (command.equals(TRUE)) {
Map<String, Object> param = new HashMap<String, Object>() { Map<String, Object> param = new HashMap<String, Object>() {
...@@ -504,48 +383,35 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -504,48 +383,35 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null); JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult); JSONObject obj = JSON.parseObject(strResult);
if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) { if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) {
return Result.success(); return jsonViewObject.success();
} }
return Result.error(obj.getString("msg")); return jsonViewObject.fail(obj.getString("msg"));
} else { } else {
//return controlSignal(code, CANCEL_STEP_CONTROL); //return controlSignal(code, CANCEL_STEP_CONTROL);
return controlSignal(manufacturerInfoPO.getName(), CANCEL_STEP_CONTROL); return controlSignal(manufacturerInfoPO.getName(), CANCEL_STEP_CONTROL);
} }
} else {
// todo else
return null;
}
} }
@Override @Override
public <T> Result<T> setSignalControl(String code, Integer command, Integer commandType) throws Exception { public JsonViewObject setSignalControl(String code, Integer command, Integer commandType) throws Exception {
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(code); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(code);
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
Integer runningMode = command.equals(TRUE) ? commandType : NORMAL_RUNNING_CONTROL; Integer runningMode = command.equals(TRUE) ? commandType : NORMAL_RUNNING_CONTROL;
//return controlSignal(code, runningMode); //return controlSignal(code, runningMode);
return controlSignal(manufacturerInfoPO.getName(), runningMode); return controlSignal(manufacturerInfoPO.getName(), runningMode);
} else {
// todo else
return null;
}
} }
@Override @Override
public <T> Result<T> recoverSchedule(String code) throws Exception { public JsonViewObject recoverSchedule(String code) throws Exception {
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(code); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(code);
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
//return controlSignal(code, NORMAL_RUNNING_CONTROL); //return controlSignal(code, NORMAL_RUNNING_CONTROL);
return controlSignal(manufacturerInfoPO.getName(), NORMAL_RUNNING_CONTROL); return controlSignal(manufacturerInfoPO.getName(), NORMAL_RUNNING_CONTROL);
} else {
// todo else
return null;
}
} }
@Override @Override
public <T> Result<T> phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception { public JsonViewObject phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(phaseTimingSendVO.getCrossCode()); ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(phaseTimingSendVO.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 将路口code转换为信号机code // 将路口code转换为信号机code
phaseTimingSendVO.setCrossCode(manufacturerInfoPO.getName()); phaseTimingSendVO.setCrossCode(manufacturerInfoPO.getName());
Map<String, Object> param = FieldUtil.fieldMethod(phaseTimingSendVO); Map<String, Object> param = FieldUtil.fieldMethod(phaseTimingSendVO);
...@@ -555,17 +421,13 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -555,17 +421,13 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null); JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult); JSONObject obj = JSON.parseObject(strResult);
if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) { if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) {
return Result.success(); return jsonViewObject.success();
}
return Result.error(obj.getString("msg"));
} else {
// todo else
return null;
} }
return jsonViewObject.fail(obj.getString("msg"));
} }
@Override @Override
public <T> Result<T> phaseDiffSend() { public JsonViewObject phaseDiffSend() {
return null; return null;
} }
...@@ -573,7 +435,8 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -573,7 +435,8 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
* @param code 信号机编号 * @param code 信号机编号
* @param runningMode 0-多时段控制模式 1-关灯、2-黄闪、3-全红、11-取消步进控制、12-灯态锁定、13-灯态解锁 * @param runningMode 0-多时段控制模式 1-关灯、2-黄闪、3-全红、11-取消步进控制、12-灯态锁定、13-灯态解锁
*/ */
private <T> Result<T> controlSignal(String code, Integer runningMode) throws Exception { private JsonViewObject controlSignal(String code, Integer runningMode) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
//执行恢复时间表方案命令 //执行恢复时间表方案命令
if (NORMAL_RUNNING_CONTROL.equals(runningMode) || CANCEL_STEP_CONTROL.equals(runningMode)) { if (NORMAL_RUNNING_CONTROL.equals(runningMode) || CANCEL_STEP_CONTROL.equals(runningMode)) {
//根据实时灯态获取当前运行模式 //根据实时灯态获取当前运行模式
...@@ -602,9 +465,9 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -602,9 +465,9 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null); JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult); JSONObject obj = JSON.parseObject(strResult);
if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) { if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) {
return Result.success(); return jsonViewObject.success();
} }
return Result.error(obj.getString("msg")); return jsonViewObject.fail(obj.getString("msg"));
} }
/** /**
......
package net.wanji.utc.service.control.impl;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.service.control.ControlCommandService;
import net.wanji.utc.util.HttpRestUtil;
import net.wanji.utc.util.StringUtils;
import net.wanji.utc.vo.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.HashMap;
/**
* @author duanruiming
* @date 2023/01/12 13:18
*/
@Service("wanJiControlCommandService")
@RequiredArgsConstructor
public class WanJiControlCommandServiceImpl implements ControlCommandService {
private final HttpRestUtil httpRestUtil;
@Value("url")
private String rpcUri;
/**
* @param schemeSendVO
* @return
* @throws Exception
*/
@Override
public JsonViewObject schemeSend(SchemeSendVO schemeSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(schemeSendVO));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发方案成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject planSend(PlanSendVO planSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(planSendVO));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发计划成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject scheduleSend(ScheduleSendVO scheduleSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(scheduleSendVO));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发时间表成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject lockControl(ControlCommandVO commandVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(commandVO));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议锁定控制成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject stepControl(String crossId, Integer command, Integer stepNum) throws Exception {
HashMap<String, Object> paraMap = new HashMap<>();
paraMap.put("crossId", crossId);
paraMap.put("command", command);
paraMap.put("stepNum", stepNum);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(paraMap));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议步进控制成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject setSignalControl(String crossId, Integer command, Integer commandType) throws Exception {
HashMap<String, Object> paraMap = new HashMap<>();
paraMap.put("crossId", crossId);
paraMap.put("command", command);
paraMap.put("commandType", commandType);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(paraMap));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议设置信号机控制模式成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject recoverSchedule(String crossId) throws Exception {
HashMap<String, Object> paraMap = new HashMap<>();
paraMap.put("crossId", crossId);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(paraMap));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议恢复时间表成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(phaseTimingSendVO));
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发相位配时成功!");
}
return jsonViewObject;
}
@Override
public JsonViewObject phaseDiffSend() {
return null;
}
}
package net.wanji.utc.service.rpcservice; package net.wanji.utc.service.rpc;
import net.wanji.utc.entity.JsonViewObject; import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.util.HttpRestUtil; import net.wanji.utc.util.HttpRestUtil;
...@@ -10,7 +10,7 @@ import java.util.Objects; ...@@ -10,7 +10,7 @@ import java.util.Objects;
* @author duanruiming * @author duanruiming
* @date 2023/01/09 9:57 * @date 2023/01/09 9:57
*/ */
public interface rpcService { public interface RpcService {
/** /**
* 远程调用信号机设备 * 远程调用信号机设备
......
package net.wanji.utc.service.runninginfo; package net.wanji.utc.service.runninginfo;
import net.wanji.utc.po.SignalStatusLogPO; import net.wanji.utc.po.SignalStatusLogPO;
import net.wanji.utc.service.rpcservice.rpcService; import net.wanji.utc.service.rpc.RpcService;
import net.wanji.utc.vo.LightsStatusVO; import net.wanji.utc.vo.LightsStatusVO;
import java.util.List; import java.util.List;
...@@ -10,7 +10,7 @@ import java.util.List; ...@@ -10,7 +10,7 @@ import java.util.List;
* @author duanruiming * @author duanruiming
* @date 2023/01/11 17:32 * @date 2023/01/11 17:32
*/ */
public interface WanJiRunningStatusService extends rpcService { public interface WanJiCommonRunningStatusService extends RpcService {
/** /**
* 标准获取路口实时运行状态接口,包括告警数据 * 标准获取路口实时运行状态接口,包括告警数据
* @param crossIdList * @param crossIdList
......
...@@ -15,7 +15,7 @@ import net.wanji.utc.po.SignalStatusLogPO; ...@@ -15,7 +15,7 @@ import net.wanji.utc.po.SignalStatusLogPO;
import net.wanji.utc.service.runninginfo.HkLightsStatusService; import net.wanji.utc.service.runninginfo.HkLightsStatusService;
import net.wanji.utc.service.runninginfo.HkRunningStatusService; import net.wanji.utc.service.runninginfo.HkRunningStatusService;
import net.wanji.utc.service.runninginfo.SignalStatusService; import net.wanji.utc.service.runninginfo.SignalStatusService;
import net.wanji.utc.service.runninginfo.WanJiRunningStatusService; import net.wanji.utc.service.runninginfo.WanJiCommonRunningStatusService;
import net.wanji.utc.util.ListUtil; import net.wanji.utc.util.ListUtil;
import net.wanji.utc.util.RedisUtil; import net.wanji.utc.util.RedisUtil;
import net.wanji.utc.vo.LightsStatusVO; import net.wanji.utc.vo.LightsStatusVO;
...@@ -38,7 +38,7 @@ public class SignalStatusServiceImpl implements SignalStatusService { ...@@ -38,7 +38,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
private final HkLightsStatusService hkLightsStatusService; private final HkLightsStatusService hkLightsStatusService;
private final RedisUtil redisUtil; private final RedisUtil redisUtil;
private final SignalStatusLogMapper signalStatusLogMapper; private final SignalStatusLogMapper signalStatusLogMapper;
private final WanJiRunningStatusService wanJiRunningStatusService; private final WanJiCommonRunningStatusService wanJiRunningStatusService;
@Override @Override
@Transactional @Transactional
......
...@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor; ...@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.entity.JsonViewObject; import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.po.SignalStatusLogPO; import net.wanji.utc.po.SignalStatusLogPO;
import net.wanji.utc.service.runninginfo.WanJiRunningStatusService; import net.wanji.utc.service.runninginfo.WanJiCommonRunningStatusService;
import net.wanji.utc.util.HttpRestUtil; import net.wanji.utc.util.HttpRestUtil;
import net.wanji.utc.vo.LightsStatusVO; import net.wanji.utc.vo.LightsStatusVO;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -21,7 +21,7 @@ import java.util.Map; ...@@ -21,7 +21,7 @@ import java.util.Map;
@Slf4j @Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class WanJiRunningStatusServiceImpl implements WanJiRunningStatusService { public class WanJiCommonRunningStatusServiceImpl implements WanJiCommonRunningStatusService {
private final HttpRestUtil httpRestUtil; private final HttpRestUtil httpRestUtil;
@Value("url") @Value("url")
...@@ -43,6 +43,6 @@ public class WanJiRunningStatusServiceImpl implements WanJiRunningStatusService ...@@ -43,6 +43,6 @@ public class WanJiRunningStatusServiceImpl implements WanJiRunningStatusService
@Override @Override
public JsonViewObject rpcService(HttpRestUtil httpRestUtil, String url, Map<String, String> headers, String param) { public JsonViewObject rpcService(HttpRestUtil httpRestUtil, String url, Map<String, String> headers, String param) {
return WanJiRunningStatusService.super.rpcService(httpRestUtil, url, headers, param); return WanJiCommonRunningStatusService.super.rpcService(httpRestUtil, url, headers, param);
} }
} }
...@@ -2,7 +2,7 @@ package net.wanji.utc.service.staticinfo; ...@@ -2,7 +2,7 @@ package net.wanji.utc.service.staticinfo;
import net.wanji.utc.common.Result; import net.wanji.utc.common.Result;
import net.wanji.utc.po.CrossSchedulesPO; import net.wanji.utc.po.CrossSchedulesPO;
import net.wanji.utc.service.rpcservice.rpcService; import net.wanji.utc.service.rpc.RpcService;
import net.wanji.utc.vo.PlanSectionVO; import net.wanji.utc.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO; import net.wanji.utc.vo.SchemePhaseLightsVO;
...@@ -12,7 +12,7 @@ import java.util.List; ...@@ -12,7 +12,7 @@ import java.util.List;
* @author duanruiming * @author duanruiming
* @date 2023/01/09 9:20 * @date 2023/01/09 9:20
*/ */
public interface WanjiCommonStaticInfoService extends rpcService { public interface WanJiCommonStaticInfoService extends RpcService {
/** /**
* 静态参数,获取万集标准方案数据-方案信息、相位信息、灯组信息 * 静态参数,获取万集标准方案数据-方案信息、相位信息、灯组信息
......
...@@ -8,7 +8,7 @@ import net.wanji.utc.dto.PlanSectionDTO; ...@@ -8,7 +8,7 @@ import net.wanji.utc.dto.PlanSectionDTO;
import net.wanji.utc.dto.SchemePhaseLightsDTO; import net.wanji.utc.dto.SchemePhaseLightsDTO;
import net.wanji.utc.mapper.*; import net.wanji.utc.mapper.*;
import net.wanji.utc.po.*; import net.wanji.utc.po.*;
import net.wanji.utc.service.staticinfo.WanjiCommonStaticInfoService; import net.wanji.utc.service.staticinfo.WanJiCommonStaticInfoService;
import net.wanji.utc.service.staticinfo.*; import net.wanji.utc.service.staticinfo.*;
import net.wanji.utc.vo.PlanSectionVO; import net.wanji.utc.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO; import net.wanji.utc.vo.SchemePhaseLightsVO;
...@@ -39,7 +39,7 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -39,7 +39,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
private final CrossPlanMapper crossPlanMapper; private final CrossPlanMapper crossPlanMapper;
private final CrossSectionMapper crossSectionMapper; private final CrossSectionMapper crossSectionMapper;
private final CrossSchedulesMapper crossSchedulesMapper; private final CrossSchedulesMapper crossSchedulesMapper;
private final WanjiCommonStaticInfoService wanjiCommonStaticInfoService; private final WanJiCommonStaticInfoService wanjiCommonStaticInfoService;
@Override @Override
@Transactional @Transactional
......
...@@ -7,7 +7,7 @@ import net.wanji.utc.common.Result; ...@@ -7,7 +7,7 @@ import net.wanji.utc.common.Result;
import net.wanji.utc.entity.JsonViewObject; import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.mapper.*; import net.wanji.utc.mapper.*;
import net.wanji.utc.po.*; import net.wanji.utc.po.*;
import net.wanji.utc.service.staticinfo.WanjiCommonStaticInfoService; import net.wanji.utc.service.staticinfo.WanJiCommonStaticInfoService;
import net.wanji.utc.util.HttpRestUtil; import net.wanji.utc.util.HttpRestUtil;
import net.wanji.utc.vo.PlanSectionVO; import net.wanji.utc.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO; import net.wanji.utc.vo.SchemePhaseLightsVO;
...@@ -27,7 +27,7 @@ import java.util.Objects; ...@@ -27,7 +27,7 @@ import java.util.Objects;
@Slf4j @Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class WanjiCommonStaticInfoServiceImpl implements WanjiCommonStaticInfoService { public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoService {
private final HttpRestUtil httpRestUtil; private final HttpRestUtil httpRestUtil;
@Value("url") @Value("url")
...@@ -123,6 +123,6 @@ public class WanjiCommonStaticInfoServiceImpl implements WanjiCommonStaticInfoSe ...@@ -123,6 +123,6 @@ public class WanjiCommonStaticInfoServiceImpl implements WanjiCommonStaticInfoSe
@Override @Override
public JsonViewObject rpcService(HttpRestUtil httpRestUtil, String url, Map<String, String> headers, String param) { public JsonViewObject rpcService(HttpRestUtil httpRestUtil, String url, Map<String, String> headers, String param) {
return WanjiCommonStaticInfoService.super.rpcService(httpRestUtil, url, headers, param); return WanJiCommonStaticInfoService.super.rpcService(httpRestUtil, url, headers, param);
} }
} }
...@@ -6,6 +6,7 @@ import lombok.Data; ...@@ -6,6 +6,7 @@ import lombok.Data;
import javax.validation.constraints.Max; import javax.validation.constraints.Max;
import javax.validation.constraints.Min; import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
/** /**
...@@ -16,10 +17,10 @@ import javax.validation.constraints.NotNull; ...@@ -16,10 +17,10 @@ import javax.validation.constraints.NotNull;
*/ */
@Data @Data
@ApiModel(value = "ControlCommandVO", description = "相位锁定实体类") @ApiModel(value = "ControlCommandVO", description = "相位锁定实体类")
public class ControlCommandVO{ public class ControlCommandVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotNull(message = "路口编号不可为空") @NotBlank(message = "路口编号不可为空")
private String crossCode; private String crossCode;
/** /**
......
...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
/** /**
...@@ -19,9 +21,11 @@ import java.util.List; ...@@ -19,9 +21,11 @@ import java.util.List;
public class PhaseTimingSendVO { public class PhaseTimingSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "需要下发的相位列表", notes = "需要下发的相位列表") @ApiModelProperty(value = "需要下发的相位列表", notes = "需要下发的相位列表")
@NotEmpty(message = "相位列表不可为空")
private List<Phase> phaseList; private List<Phase> phaseList;
/** /**
......
...@@ -4,8 +4,9 @@ import io.swagger.annotations.ApiModel; ...@@ -4,8 +4,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.wanji.utc.common.baseentity.BaseCrossInfo;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
/** /**
...@@ -20,8 +21,10 @@ import java.util.List; ...@@ -20,8 +21,10 @@ import java.util.List;
public class PlanSendVO { public class PlanSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "计划列表", notes = "计划列表") @ApiModelProperty(value = "计划列表", notes = "计划列表")
@NotEmpty(message = "计划列表不可为空")
private List<Plan> planList; private List<Plan> planList;
@Setter @Setter
......
...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
/** /**
...@@ -19,8 +21,10 @@ import java.util.List; ...@@ -19,8 +21,10 @@ import java.util.List;
public class ScheduleSendVO { public class ScheduleSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "时间表", notes = "时间表") @ApiModelProperty(value = "时间表", notes = "时间表")
@NotEmpty(message = "时间表不可为空")
private List<Schedule> schedules; private List<Schedule> schedules;
@Setter @Setter
......
...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
/** /**
...@@ -19,9 +21,11 @@ import java.util.List; ...@@ -19,9 +21,11 @@ import java.util.List;
public class SchemeSendVO { public class SchemeSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "方案列表", notes = "方案列表") @ApiModelProperty(value = "方案列表", notes = "方案列表")
@NotEmpty(message = "方案列表不可为空")
private List<Pattern> patternList; private List<Pattern> patternList;
/** /**
......
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