Commit 69a0745d authored by duanruiming's avatar duanruiming

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

parent cc4dce64
......@@ -4,11 +4,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.common.Result;
import net.wanji.utc.service.control.ControlCommandService;
import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.service.control.ControlCommandStrategyService;
import net.wanji.utc.vo.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -23,98 +23,99 @@ import static net.wanji.utc.common.constant.Constants.*;
@Slf4j
@RestController
@RequestMapping("/controlCommand")
@RequiredArgsConstructor
@Api(value = "控制指令接口", description = "控制指令接口", tags = "控制指令接口")
public class ControlCommandController {
@Autowired
private ControlCommandService hkControlCommandService;
private final ControlCommandStrategyService controlCommandStrategyService;
/**
* 信号机方案下发
*
* @param schemeSendVO 方案下发VO
* @return {@link Result}<{@link T}>
* @return
*/
@ApiOperation(value = "信号机方案下发-基础方案下发", notes = "信号机方案下发-基础方案下发")
@PostMapping("/schemeSend")
public <T> Result<T> schemeSend(@RequestBody SchemeSendVO schemeSendVO) throws Exception {
return hkControlCommandService.schemeSend(schemeSendVO);
public JsonViewObject schemeSend(@RequestBody @Validated SchemeSendVO schemeSendVO) throws Exception {
return controlCommandStrategyService.schemeSendStrategy(schemeSendVO);
}
/**
* 下发信号机计划
*
* @param planSendVO 计划下发VO
* @return {@link Result}<{@link T}>
* @return
*/
@ApiOperation(value = "计划下发-计划信息、时段信息", notes = "计划下发-计划信息、时段信息")
@PostMapping("/planSend")
public <T> Result<T> planSend(@RequestBody PlanSendVO planSendVO) throws Exception {
return hkControlCommandService.planSend(planSendVO);
public JsonViewObject planSend(@RequestBody PlanSendVO planSendVO) throws Exception {
return controlCommandStrategyService.planSendStrategy(planSendVO);
}
/**
* 时间表下发
*
* @param scheduleSendVO 时间表下发VO
* @return {@link Result}<{@link T}>
* @return
* @throws Exception 异常
*/
@ApiOperation(value = "时间表下发-时间表信息", notes = "时间表下发-时间表信息")
@PostMapping("/scheduleSend")
public <T> Result<T> scheduleSend(@RequestBody ScheduleSendVO scheduleSendVO) throws Exception {
return hkControlCommandService.scheduleSend(scheduleSendVO);
public JsonViewObject scheduleSend(@RequestBody ScheduleSendVO scheduleSendVO) throws Exception {
return controlCommandStrategyService.scheduleSendStrategy(scheduleSendVO);
}
/**
* 相位配时下发-(下发相位参数)
*
* @return {@link Result}<{@link T}>
* @return
* @throws InterruptedException 中断异常
*/
@ApiOperation(value = "相位配时下发-(下发相位参数)", notes = "相位配时下发-(下发相位参数)")
@PostMapping("/phaseTimingSend")
public <T> Result<T> phaseTimingSend(@RequestBody PhaseTimingSendVO phaseTimingSendVO) throws Exception {
return hkControlCommandService.phaseTimingSend(phaseTimingSendVO);
public JsonViewObject phaseTimingSend(@RequestBody PhaseTimingSendVO phaseTimingSendVO) throws Exception {
return controlCommandStrategyService.phaseTimingSendStrategy(phaseTimingSendVO);
}
/**
* 全红控制
*
* @param commandVO 控制指令VO
* @return {@link Result}<{@link T}>
* @return
* @throws Exception 异常
*/
@ApiOperation(value = "全红控制-路口全红控制/恢复", notes = "全红控制-路口全红控制/恢复")
@PostMapping("/allRedControl")
public <T> Result<T> allRedControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.setSignalControl(commandVO.getCrossCode(), commandVO.getCommand(), ALL_RED_CONTROL);
public JsonViewObject allRedControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return controlCommandStrategyService.setSignalControlStrategy(commandVO.getCrossCode(), commandVO.getCommand(), ALL_RED_CONTROL);
}
/**
* 黄闪控制
*
* @param commandVO 控制指令VO
* @return {@link Result}<{@link T}>
* @return
* @throws Exception 异常
*/
@ApiOperation(value = "黄闪控制-路口黄闪控制/恢复", notes = "黄闪控制-路口黄闪控制/恢复")
@PostMapping("/yellowLightControl")
public <T> Result<T> yellowLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.setSignalControl(commandVO.getCrossCode(), commandVO.getCommand(), YELLOW_LIGHT_CONTROL);
public JsonViewObject yellowLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return controlCommandStrategyService.setSignalControlStrategy(commandVO.getCrossCode(), commandVO.getCommand(), YELLOW_LIGHT_CONTROL);
}
/**
* 关灯控制
*
* @param commandVO 控制指令VO
* @return {@link Result}<{@link T}>
* @return
* @throws Exception 异常
*/
@ApiOperation(value = "关灯控制-路口关灯控制/开灯", notes = "关灯控制-路口关灯控制/开灯")
@PostMapping("/closeLightControl")
public <T> Result<T> closeLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.setSignalControl(commandVO.getCrossCode(), commandVO.getCommand(), CLOSE_LIGHT_CONTROL);
public JsonViewObject closeLightControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return controlCommandStrategyService.setSignalControlStrategy(commandVO.getCrossCode(), commandVO.getCommand(), CLOSE_LIGHT_CONTROL);
}
/**
......@@ -123,7 +124,7 @@ public class ControlCommandController {
* @param code 信号id
* @param command 命令
* @param stepNum 一步num
* @return {@link Result}<{@link T}>
* @return
*/
@ApiOperation(value = "步进控制-步进控制/恢复", notes = "步进控制-步进控制/恢复")
@ApiImplicitParams({
......@@ -131,35 +132,35 @@ public class ControlCommandController {
@ApiImplicitParam(name = "stepNum", value = "0 顺序步进 n 跳过n个相位", paramType = "query", required = true, dataType = "int"),
})
@PostMapping("/stepControl")
public <T> Result<T> stepControl(@RequestParam String code,
public JsonViewObject stepControl(@RequestParam String code,
@RequestParam Integer command,
@RequestParam int stepNum) throws Exception {
return hkControlCommandService.stepControl(code, command, stepNum);
return controlCommandStrategyService.stepControlStrategy(code, command, stepNum);
}
/**
* 恢复时间表
*
* @param code 信号id
* @return {@link Result}<{@link T}>
* @return
*/
@ApiOperation(value = "恢复时间表-恢复路口时间表执行", notes = "恢复时间表-恢复路口时间表执行")
@PostMapping("/recoverSchedule")
public <T> Result<T> recoverSchedule(@RequestParam String code) throws Exception {
return hkControlCommandService.recoverSchedule(code);
public JsonViewObject recoverSchedule(@RequestParam String code) throws Exception {
return controlCommandStrategyService.recoverScheduleStrategy(code);
}
/**
* 锁定控制
*
* @param commandVO 控制指令VO
* @return {@link Result}<{@link T}>
* @return
* @throws Exception 异常
*/
@ApiOperation(value = "锁定控制-相位锁定/解锁", notes = "锁定控制-相位锁定/解锁")
@PostMapping("/lockControl")
public <T> Result<T> lockControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return hkControlCommandService.lockControl(commandVO);
public JsonViewObject lockControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
return controlCommandStrategyService.lockControlStrategy(commandVO);
}
/**
......@@ -167,7 +168,7 @@ public class ControlCommandController {
*/
@ApiOperation(value = "相位差下发", notes = "相位差下发")
@PostMapping("/phaseDiffSend")
public <T> Result<T> phaseDiffSend() {
return hkControlCommandService.phaseDiffSend();
public JsonViewObject phaseDiffSend() {
return controlCommandStrategyService.phaseDiffSendStrategy();
}
}
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.*;
/**
......@@ -9,37 +10,37 @@ import net.wanji.utc.vo.*;
* @author wuxiaokai
* @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
* @return {@link Result}<{@link T}>
* @return
*/
<T> Result<T> planSend(PlanSendVO planSendVO) throws Exception;
JsonViewObject planSend(PlanSendVO planSendVO) throws Exception;
/**
* 时间表下发
*
* @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
* @return {@link Result}<{@link T}>
* @return
* @throws Exception 异常
*/
<T> Result<T> lockControl(ControlCommandVO commandVO) throws Exception;
JsonViewObject lockControl(ControlCommandVO commandVO) throws Exception;
/**
* 步进控制
......@@ -47,10 +48,10 @@ public interface ControlCommandService {
* @param code 信号机编号
* @param command 1 开始步进 0 取消步进
* @param stepNum 0 顺序步进 n 跳过n个相位
* @return {@link Result}<{@link T}>
* @return
* @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 {
* @param code 信号机编号
* @param command 指令 1 开 0 关
* @param commandType 命令类型
* @return {@link Result}<{@link T}>
* @return
* @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 信号机编号
* @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 中断异常
*/
<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;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.common.Result;
import net.wanji.utc.common.baseentity.BaseCrossInfo;
import net.wanji.utc.common.exception.ControlException;
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.DownloadScheduleDTO;
import net.wanji.utc.dto.hk.DownloadTimeSpandsDTO;
import net.wanji.utc.entity.JsonViewObject;
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.runninginfo.HkLightsStatusService;
import net.wanji.utc.util.FieldUtil;
......@@ -25,8 +26,6 @@ import net.wanji.utc.vo.*;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -69,11 +68,10 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
private ManufacturerInfoMapper manufacturerInfoMapper;
@Override
public <T> Result<T> schemeSend(SchemeSendVO schemeSendVO) throws Exception {
public JsonViewObject schemeSend(SchemeSendVO schemeSendVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
// 厂商 HK
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(schemeSendVO.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 1、组装参数, 下发海康信号机
DownloadPlanSpandsDTO dto = new DownloadPlanSpandsDTO();
// 将路口code转换为信号机code
......@@ -117,63 +115,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSONObject obj = JSON.parseObject(strResult);
if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) {
// 入库操作
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.success("海康下发信号机方案成功");
}
return jsonViewObject.fail(obj.getString("msg"));
}
@Override
public <T> Result<T> planSend(PlanSendVO planSendVO) throws Exception {
public JsonViewObject planSend(PlanSendVO planSendVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
// 厂商 HK
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(planSendVO.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 1、下发信号机计划拼接参数
DownloadTimeSpandsDTO downloadTimeSpandsDTO = new DownloadTimeSpandsDTO();
List<DownloadTimeSpandsDTO.Data> dataList = new ArrayList<>();
......@@ -208,46 +159,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(fieldMap), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult);
if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) {
// 2、入库操作
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.success("下发信号机计划成功");
}
return jsonViewObject.fail(obj.getString("msg"));
}
@Override
public <T> Result<T> scheduleSend(ScheduleSendVO param) throws Exception {
public JsonViewObject scheduleSend(ScheduleSendVO param) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
// 厂商 HK
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(param.getCrossCode());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 1、通过获取当前运行的日期数据,获取最新的日期方案id
JSONArray body = new JSONArray();
//body.add(param.getCrossCode());
......@@ -331,54 +252,15 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(fieldMap), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(updateResult);
if (obj.get(HK_CODE_KEY).equals(HK_SUCCESS_STRING_CODE)) {
// 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.success("时间表下发成功");
}
return jsonViewObject.fail(obj.getString("msg"));
}
@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());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
if (commandVO.getCommand().equals(TRUE)) {
Map<String, Object> param = new HashMap<String, Object>() {
{
......@@ -415,17 +297,14 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult);
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 {
//return controlSignal(commandVO.getCrossCode(), UNLOCK_RUNNING_CONTROL);
return controlSignal(manufacturerInfoPO.getName(), UNLOCK_RUNNING_CONTROL);
}
} else {
// todo else
return null;
}
}
/**
......@@ -460,9 +339,9 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
}
@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);
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
if (command.equals(TRUE)) {
Map<String, Object> param = new HashMap<String, Object>() {
......@@ -504,48 +383,35 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult);
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 {
//return controlSignal(code, CANCEL_STEP_CONTROL);
return controlSignal(manufacturerInfoPO.getName(), CANCEL_STEP_CONTROL);
}
} else {
// todo else
return null;
}
}
@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);
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
Integer runningMode = command.equals(TRUE) ? commandType : NORMAL_RUNNING_CONTROL;
//return controlSignal(code, runningMode);
return controlSignal(manufacturerInfoPO.getName(), runningMode);
} else {
// todo else
return null;
}
}
@Override
public <T> Result<T> recoverSchedule(String code) throws Exception {
public JsonViewObject recoverSchedule(String code) throws Exception {
ManufacturerInfoPO manufacturerInfoPO = checkCrossCode(code);
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
//return controlSignal(code, NORMAL_RUNNING_CONTROL);
return controlSignal(manufacturerInfoPO.getName(), NORMAL_RUNNING_CONTROL);
} else {
// todo else
return null;
}
}
@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());
if (manufacturerInfoPO.getCode().equals(BasicEnum.ManufacturerEnum.HK.getCode())) {
// 将路口code转换为信号机code
phaseTimingSendVO.setCrossCode(manufacturerInfoPO.getName());
Map<String, Object> param = FieldUtil.fieldMethod(phaseTimingSendVO);
......@@ -555,17 +421,13 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult);
if (HK_SUCCESS_STRING_CODE.equals(obj.get(HK_CODE_KEY))) {
return Result.success();
}
return Result.error(obj.getString("msg"));
} else {
// todo else
return null;
return jsonViewObject.success();
}
return jsonViewObject.fail(obj.getString("msg"));
}
@Override
public <T> Result<T> phaseDiffSend() {
public JsonViewObject phaseDiffSend() {
return null;
}
......@@ -573,7 +435,8 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
* @param code 信号机编号
* @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)) {
//根据实时灯态获取当前运行模式
......@@ -602,9 +465,9 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON.toJSONString(param), null, null, "application/json", null);
JSONObject obj = JSON.parseObject(strResult);
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.util.HttpRestUtil;
......@@ -10,7 +10,7 @@ import java.util.Objects;
* @author duanruiming
* @date 2023/01/09 9:57
*/
public interface rpcService {
public interface RpcService {
/**
* 远程调用信号机设备
......
package net.wanji.utc.service.runninginfo;
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 java.util.List;
......@@ -10,7 +10,7 @@ import java.util.List;
* @author duanruiming
* @date 2023/01/11 17:32
*/
public interface WanJiRunningStatusService extends rpcService {
public interface WanJiCommonRunningStatusService extends RpcService {
/**
* 标准获取路口实时运行状态接口,包括告警数据
* @param crossIdList
......
......@@ -15,7 +15,7 @@ import net.wanji.utc.po.SignalStatusLogPO;
import net.wanji.utc.service.runninginfo.HkLightsStatusService;
import net.wanji.utc.service.runninginfo.HkRunningStatusService;
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.RedisUtil;
import net.wanji.utc.vo.LightsStatusVO;
......@@ -38,7 +38,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
private final HkLightsStatusService hkLightsStatusService;
private final RedisUtil redisUtil;
private final SignalStatusLogMapper signalStatusLogMapper;
private final WanJiRunningStatusService wanJiRunningStatusService;
private final WanJiCommonRunningStatusService wanJiRunningStatusService;
@Override
@Transactional
......
......@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.entity.JsonViewObject;
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.vo.LightsStatusVO;
import org.springframework.beans.factory.annotation.Value;
......@@ -21,7 +21,7 @@ import java.util.Map;
@Slf4j
@Service
@RequiredArgsConstructor
public class WanJiRunningStatusServiceImpl implements WanJiRunningStatusService {
public class WanJiCommonRunningStatusServiceImpl implements WanJiCommonRunningStatusService {
private final HttpRestUtil httpRestUtil;
@Value("url")
......@@ -43,6 +43,6 @@ public class WanJiRunningStatusServiceImpl implements WanJiRunningStatusService
@Override
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;
import net.wanji.utc.common.Result;
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.SchemePhaseLightsVO;
......@@ -12,7 +12,7 @@ import java.util.List;
* @author duanruiming
* @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;
import net.wanji.utc.dto.SchemePhaseLightsDTO;
import net.wanji.utc.mapper.*;
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.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO;
......@@ -39,7 +39,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
private final CrossPlanMapper crossPlanMapper;
private final CrossSectionMapper crossSectionMapper;
private final CrossSchedulesMapper crossSchedulesMapper;
private final WanjiCommonStaticInfoService wanjiCommonStaticInfoService;
private final WanJiCommonStaticInfoService wanjiCommonStaticInfoService;
@Override
@Transactional
......
......@@ -7,7 +7,7 @@ import net.wanji.utc.common.Result;
import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.mapper.*;
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.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO;
......@@ -27,7 +27,7 @@ import java.util.Objects;
@Slf4j
@Service
@RequiredArgsConstructor
public class WanjiCommonStaticInfoServiceImpl implements WanjiCommonStaticInfoService {
public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoService {
private final HttpRestUtil httpRestUtil;
@Value("url")
......@@ -123,6 +123,6 @@ public class WanjiCommonStaticInfoServiceImpl implements WanjiCommonStaticInfoSe
@Override
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;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
......@@ -16,10 +17,10 @@ import javax.validation.constraints.NotNull;
*/
@Data
@ApiModel(value = "ControlCommandVO", description = "相位锁定实体类")
public class ControlCommandVO{
public class ControlCommandVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotNull(message = "路口编号不可为空")
@NotBlank(message = "路口编号不可为空")
private String crossCode;
/**
......
......@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
......@@ -19,9 +21,11 @@ import java.util.List;
public class PhaseTimingSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode;
@ApiModelProperty(value = "需要下发的相位列表", notes = "需要下发的相位列表")
@NotEmpty(message = "相位列表不可为空")
private List<Phase> phaseList;
/**
......
......@@ -4,8 +4,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import net.wanji.utc.common.baseentity.BaseCrossInfo;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
......@@ -20,8 +21,10 @@ import java.util.List;
public class PlanSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode;
@ApiModelProperty(value = "计划列表", notes = "计划列表")
@NotEmpty(message = "计划列表不可为空")
private List<Plan> planList;
@Setter
......
......@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
......@@ -19,8 +21,10 @@ import java.util.List;
public class ScheduleSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode;
@ApiModelProperty(value = "时间表", notes = "时间表")
@NotEmpty(message = "时间表不可为空")
private List<Schedule> schedules;
@Setter
......
......@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
......@@ -19,9 +21,11 @@ import java.util.List;
public class SchemeSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不可为空")
private String crossCode;
@ApiModelProperty(value = "方案列表", notes = "方案列表")
@NotEmpty(message = "方案列表不可为空")
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