Commit 91d68503 authored by zhouleilei's avatar zhouleilei

1、新增 - 根据路口号和方案号查询环转阶段

2、同步代码
parent 984f84c3
...@@ -163,4 +163,12 @@ public interface FeignCommon { ...@@ -163,4 +163,12 @@ public interface FeignCommon {
@PostMapping("/signalStatus/lightStatusOneHist") @PostMapping("/signalStatus/lightStatusOneHist")
JsonViewObject selectLightStatusHist(@RequestBody CrossIdDateTimeDTO crossIdDateTimeDTO); JsonViewObject selectLightStatusHist(@RequestBody CrossIdDateTimeDTO crossIdDateTimeDTO);
/**
* 根据路口号和方案号查询环转阶段
* @param crossIdDateTimeDTO
* @return
*/
@PostMapping("/staticInfo/selectCrossSchemeRingsToStages")
JsonViewObject selectCrossSchemeRingsToStages(@RequestBody CrossSchemeRingsDTO crossSchemeRingsDTO);
} }
...@@ -12,6 +12,7 @@ import net.wanji.databus.dao.entity.CrossSchedulesPO; ...@@ -12,6 +12,7 @@ import net.wanji.databus.dao.entity.CrossSchedulesPO;
import net.wanji.databus.dto.*; import net.wanji.databus.dto.*;
import net.wanji.databus.po.CoordinationStatus; import net.wanji.databus.po.CoordinationStatus;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.vo.CrossSchemeRingsToStagesPO;
import net.wanji.databus.vo.PlanSectionVO; import net.wanji.databus.vo.PlanSectionVO;
import net.wanji.databus.vo.SchemePhaseLightsVO; import net.wanji.databus.vo.SchemePhaseLightsVO;
import net.wanji.databus.po.CrossSchemeRings; import net.wanji.databus.po.CrossSchemeRings;
...@@ -149,4 +150,22 @@ public class StaticInfoController { ...@@ -149,4 +150,22 @@ public class StaticInfoController {
public JsonViewObject selectSchemeByParams(@RequestBody @Validated QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception { public JsonViewObject selectSchemeByParams(@RequestBody @Validated QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception {
return JsonViewObject.newInstance().success(staticInfoService.selectSchemeByParams(queryByCrossIdAndTimeDTO)); return JsonViewObject.newInstance().success(staticInfoService.selectSchemeByParams(queryByCrossIdAndTimeDTO));
} }
@AspectLog(description = "根据路口号和方案号查询环转阶段", operationType = BaseEnum.OperationTypeEnum.QUERY)
@PostMapping(value = "/selectCrossSchemeRingsToStages")
@ApiOperation(value = "根据路口号和方案号查询环转阶段", notes = "根据路口号和方案号查询环转阶段", response = CrossSchemeRings.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = CrossSchemeRings.class)
})
public JsonViewObject selectCrossSchemeRingsToStages(@RequestBody @Validated CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception {
if (ObjectUtils.isEmpty(crossSchemeRingsDTO.getPattern())) {
return JsonViewObject.newInstance().fail("方案号不能为空");
}
CrossSchemeRingsToStagesPO crossSchemeRingsToStagesPO = staticInfoService.selectCrossSchemeRingsToStages(crossSchemeRingsDTO);
if (ObjectUtils.isEmpty(crossSchemeRingsToStagesPO)) {
return JsonViewObject.newInstance().fail("获取海信方案环图失败");
}
return JsonViewObject.newInstance().success(crossSchemeRingsToStagesPO);
}
} }
...@@ -4,11 +4,12 @@ import net.wanji.databus.dao.entity.BaseCrossSchemePO; ...@@ -4,11 +4,12 @@ import net.wanji.databus.dao.entity.BaseCrossSchemePO;
import net.wanji.databus.dao.entity.CrossSchedulesPO; import net.wanji.databus.dao.entity.CrossSchedulesPO;
import net.wanji.databus.dao.entity.CrossSchemeStageOptLogPO; import net.wanji.databus.dao.entity.CrossSchemeStageOptLogPO;
import net.wanji.databus.dto.*; import net.wanji.databus.dto.*;
import net.wanji.databus.po.CoordinationStatus;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.CrossSchemeRings;
import net.wanji.databus.vo.CrossSchemeRingsToStagesPO;
import net.wanji.databus.vo.PlanSectionVO; import net.wanji.databus.vo.PlanSectionVO;
import net.wanji.databus.vo.SchemePhaseLightsVO; import net.wanji.databus.vo.SchemePhaseLightsVO;
import net.wanji.databus.po.CoordinationStatus;
import net.wanji.databus.po.CrossSchemeRings;
import java.util.List; import java.util.List;
@SuppressWarnings("all") @SuppressWarnings("all")
...@@ -47,4 +48,11 @@ public interface StaticInfoService { ...@@ -47,4 +48,11 @@ public interface StaticInfoService {
**/ **/
BaseCrossSchemePO selectSchemeByParams(QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception; BaseCrossSchemePO selectSchemeByParams(QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception;
/**
* @Description : 根据路口号和方案号查询环转阶段
* @Param crossId 路口编号
* @Param pattern 方案号
**/
CrossSchemeRingsToStagesPO selectCrossSchemeRingsToStages(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception;
} }
...@@ -755,7 +755,7 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -755,7 +755,7 @@ public class ControlCommandServiceImpl implements ControlCommandService {
* @Description 默认的相位时间 * @Description 默认的相位时间
* @Param [] * @Param []
**/ **/
private String getDefaultPhaseTime() { public String getDefaultPhaseTime() {
StringBuilder str = new StringBuilder(); StringBuilder str = new StringBuilder();
for (int i = 0; i < 16; i++) { for (int i = 0; i < 16; i++) {
str.append("0").append(" "); str.append("0").append(" ");
......
...@@ -17,6 +17,7 @@ import net.wanji.databus.dao.mapper.CrossSchemeStageOptLogMapper; ...@@ -17,6 +17,7 @@ import net.wanji.databus.dao.mapper.CrossSchemeStageOptLogMapper;
import net.wanji.databus.dao.mapper.ManufacturerInfoMapper; import net.wanji.databus.dao.mapper.ManufacturerInfoMapper;
import net.wanji.databus.dto.*; import net.wanji.databus.dto.*;
import net.wanji.databus.po.*; import net.wanji.databus.po.*;
import net.wanji.databus.vo.CrossSchemeRingsToStagesPO;
import net.wanji.databus.vo.PlanSectionVO; import net.wanji.databus.vo.PlanSectionVO;
import net.wanji.databus.vo.SchemePhaseLightsVO; import net.wanji.databus.vo.SchemePhaseLightsVO;
import net.wanji.utc.hisense.cache.CrossInfoCache; import net.wanji.utc.hisense.cache.CrossInfoCache;
...@@ -78,6 +79,8 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -78,6 +79,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
@Resource @Resource
private BaseCrossSchemeMapper baseCrossSchemeMapper; private BaseCrossSchemeMapper baseCrossSchemeMapper;
public static Map<String, Integer> planMap = new HashMap<>(); public static Map<String, Integer> planMap = new HashMap<>();
@Resource
private StaticInfoServiceImpl staticInfoServiceImpl;
@Override @Override
public List<CrossInfoPO> crossBasicInfo(CrossInfoDTO crossInfoDTO) throws Exception { public List<CrossInfoPO> crossBasicInfo(CrossInfoDTO crossInfoDTO) throws Exception {
...@@ -1085,4 +1088,99 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -1085,4 +1088,99 @@ public class StaticInfoServiceImpl implements StaticInfoService {
} }
return baseCrossSchemePO; return baseCrossSchemePO;
} }
@Override
public CrossSchemeRingsToStagesPO selectCrossSchemeRingsToStages(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception {
CrossSchemeRingsToStagesPO crossSchemeRingsToStagesPO = new CrossSchemeRingsToStagesPO();
String crossId = crossSchemeRingsDTO.getCrossId();
int pattern = Integer.valueOf(crossSchemeRingsDTO.getPattern());
crossSchemeRingsToStagesPO.setCrossId(crossId);
crossSchemeRingsToStagesPO.setSchemeId(String.valueOf(pattern));
//海信方案号
String schemeId = String.valueOf(pattern*3 - 2);
crossSchemeRingsDTO.setPattern(schemeId);
//查询方案环图请求
CrossSchemeRings crossSchemeRings = crossSchemeRingsHisen(crossSchemeRingsDTO);
if (ObjectUtil.isEmpty(crossSchemeRings)) {
return null;
}
String cycleLen = crossSchemeRings.getCycleLen();
String ringCount = crossSchemeRings.getRingCount();
crossSchemeRingsToStagesPO.setRingCount(ringCount);
crossSchemeRingsToStagesPO.setCycleLen(cycleLen);
crossSchemeRingsToStagesPO.setOffset(crossSchemeRings.getOffset());
List<CrossSchemeRings.Phase> phaseList = crossSchemeRings.getPhaseList();
CrossSchemeRings.Phase phase = phaseList.get(0);
String redTime = phase.getRedTime();
String greenTime = phase.getGreenTime();
String yellowTime = phase.getYellowTime();
crossSchemeRingsToStagesPO.setSplit(getPhaseTime(redTime,greenTime,yellowTime));
JSONObject cycleJSONObject = crossSchemeRings.getCycleList();
List<StagePhaseDTO> stagePhaseDTOList = null;
try {
//封装环和环上相位数据
Map<Integer, List<RingPhaseDTO>> ringPhasesMap = staticInfoServiceImpl.getRingPhasesMap(Integer.valueOf(ringCount), cycleJSONObject, phase);
//环封装阶段
stagePhaseDTOList = staticInfoServiceImpl.stagePhaseList(Integer.valueOf(cycleLen), Integer.valueOf(ringCount), ringPhasesMap);
} catch (Exception e) {
return null;
}
List<CrossSchemeRingsToStagesPO.Phase> phasePOlist = new ArrayList<>();
if (ObjectUtil.isNotEmpty(stagePhaseDTOList)) {
for (StagePhaseDTO stagePhaseDTO : stagePhaseDTOList) {
CrossSchemeRingsToStagesPO.Phase phasePO = new CrossSchemeRingsToStagesPO.Phase();
phasePO.setPhaseNo(String.valueOf(stagePhaseDTO.getStageId()));
phasePO.setPhaseTime(stagePhaseDTO.getStageTime());
CrossSchemeStageOptLogPO crossSchemeStageOptLogPO = new CrossSchemeStageOptLogPO();
crossSchemeStageOptLogPO.setCrossId(crossId);
crossSchemeStageOptLogPO.setPhaseNo(stagePhaseDTO.getStageId() + "");
crossSchemeStageOptLogPO.setPhaseTime(stagePhaseDTO.getStageTime());
List<RingPhaseDTO> ringPhaseList = stagePhaseDTO.getRingPhaseList();
List<Integer> list = new ArrayList<>();
for (RingPhaseDTO ringPhaseDTO : ringPhaseList) {
if (ObjectUtil.isNotEmpty(ringPhaseDTO)) {
list.add(ringPhaseDTO.getPhaseId());
}
}
if (ObjectUtil.isNotEmpty(list)) {
String phases = CollectionUtil.join(list, ",");
crossSchemeStageOptLogPO.setPhaseList(phases);
phasePO.setPhaseList(phases);
}
phasePOlist.add(phasePO);
}
}
crossSchemeRingsToStagesPO.setPhaseList(phasePOlist);
return crossSchemeRingsToStagesPO;
}
/**
* @Description 通过红灯、绿灯、黄灯时间,计算相位时间
* @Param [redTime, greenTime, yellowTime]
* @return java.lang.String
**/
public String getPhaseTime(String redTime,String greenTime,String yellowTime){
// 将字符串拆分为数组,处理可能的首尾空格
String[] redArray = redTime.trim().split("\\s+");
String[] greenArray = greenTime.trim().split("\\s+");
String[] yellowArray = yellowTime.trim().split("\\s+");
StringBuilder result = new StringBuilder();
for (int i = 0; i < 16; i++) {
// 将对应位置的数值求和
int sum = Integer.parseInt(redArray[i])
+ Integer.parseInt(greenArray[i])
+ Integer.parseInt(yellowArray[i]);
// 拼接结果,用空格分隔
if (i > 0) {
result.append(" ");
}
result.append(sum);
}
return result.toString();
}
} }
...@@ -14,6 +14,7 @@ import java.util.List; ...@@ -14,6 +14,7 @@ import java.util.List;
* @date 2023/06/20 15:07 * @date 2023/06/20 15:07
*/ */
public class CommonUtils { public class CommonUtils {
/** /**
* 将数组转化为16进制字符串 * 将数组转化为16进制字符串
* *
......
...@@ -14,6 +14,7 @@ import net.wanji.databus.dto.StepingPhaseDTO; ...@@ -14,6 +14,7 @@ import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.po.SaveToUtcPO; import net.wanji.databus.po.SaveToUtcPO;
import net.wanji.databus.vo.*; import net.wanji.databus.vo.*;
import net.wanji.utc.service.control.ControlCommandStrategyService; import net.wanji.utc.service.control.ControlCommandStrategyService;
import net.wanji.utc.vo.SchemePhaseGreenTimeOptVO;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -259,4 +260,17 @@ public class ControlCommandController { ...@@ -259,4 +260,17 @@ public class ControlCommandController {
return controlCommandStrategyService.stepControlStrategy(stepingPhaseDTO.getCrossId(),stepingPhaseDTO.getCommand(),stepingPhaseDTO.getStepCount()); return controlCommandStrategyService.stepControlStrategy(stepingPhaseDTO.getCrossId(),stepingPhaseDTO.getCommand(),stepingPhaseDTO.getStepCount());
} }
@AspectLog(description = "方案相位绿灯时间优化下发", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "方案相位绿灯时间优化下发", notes = "方案相位绿灯时间优化下发")
@PostMapping("/schemePhaseGreenTimeOpt")
public JsonViewObject schemePhaseGreenTimeOpt(@RequestBody @Validated SchemePhaseGreenTimeOptVO vo) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
try {
jsonViewObject = controlCommandStrategyService.schemePhaseGreenTimeOpt(vo);
} catch (Exception e) {
return JsonViewObject.newInstance().fail("方案相位绿灯时间优化下发失败");
}
return jsonViewObject;
}
} }
...@@ -195,6 +195,14 @@ public class StaticInfoController { ...@@ -195,6 +195,14 @@ public class StaticInfoController {
public JsonViewObject selectSchemeOptLogByParams(@Validated @RequestBody CrossSchemeQueryDTO crossSchemeQueryDTO) throws Exception { public JsonViewObject selectSchemeOptLogByParams(@Validated @RequestBody CrossSchemeQueryDTO crossSchemeQueryDTO) throws Exception {
return staticInfoService.selectSchemeOptLogByParams(crossSchemeQueryDTO); return staticInfoService.selectSchemeOptLogByParams(crossSchemeQueryDTO);
} }
@AspectLog(description = "根据路口号和方案号查询环转阶段", operationType = BaseEnum.OperationTypeEnum.QUERY)
@PostMapping(value = "/selectCrossSchemeRingsToStages", produces = MediaType.APPLICATION_JSON)
@ApiOperation(value = "根据路口号和方案号查询环转阶段", notes = "根据路口号和方案号查询环转阶段")
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = CrossSchedulesPO.class)
})
public JsonViewObject selectCrossSchemeRingsToStages(@Validated @RequestBody CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception {
return staticInfoService.selectCrossSchemeRingsToStages(crossSchemeRingsDTO);
}
} }
package net.wanji.utc.dto.ring; package net.wanji.utc.dto.ring;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -49,6 +51,9 @@ public class RingPhaseInfoDTO { ...@@ -49,6 +51,9 @@ public class RingPhaseInfoDTO {
private List<DirTurn> dirTurnInfoList; private List<DirTurn> dirTurnInfoList;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date date;
/** /**
* 转换后万集的方向转向,不包含行人 * 转换后万集的方向转向,不包含行人
*/ */
......
...@@ -5,6 +5,8 @@ import net.wanji.databus.dto.ExtendPhaseDTO; ...@@ -5,6 +5,8 @@ import net.wanji.databus.dto.ExtendPhaseDTO;
import net.wanji.databus.dto.StepingPhaseDTO; import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.po.SaveToUtcPO; import net.wanji.databus.po.SaveToUtcPO;
import net.wanji.databus.vo.*; import net.wanji.databus.vo.*;
import net.wanji.utc.vo.SchemePhaseGreenTimeOptVO;
import java.util.Date; import java.util.Date;
/** /**
...@@ -143,4 +145,12 @@ public interface ControlCommandStrategyService { ...@@ -143,4 +145,12 @@ public interface ControlCommandStrategyService {
* @throws Exception * @throws Exception
*/ */
JsonViewObject stepingPhase (StepingPhaseDTO stepingPhaseDTO) throws Exception; JsonViewObject stepingPhase (StepingPhaseDTO stepingPhaseDTO) throws Exception;
/**
* 方案相位绿灯时间优化
* @param vo
* @return
* @throws Exception
*/
JsonViewObject schemePhaseGreenTimeOpt(SchemePhaseGreenTimeOptVO vo) throws Exception;
} }
...@@ -18,6 +18,7 @@ import net.wanji.databus.po.BaseCrossLightsPO; ...@@ -18,6 +18,7 @@ import net.wanji.databus.po.BaseCrossLightsPO;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.SaveToUtcPO; import net.wanji.databus.po.SaveToUtcPO;
import net.wanji.databus.vo.*; import net.wanji.databus.vo.*;
import net.wanji.feign.service.common.FeignCommon;
import net.wanji.utc.cache.CrossInfoCache; import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.cache.CrossPhaseDirTurnCache; import net.wanji.utc.cache.CrossPhaseDirTurnCache;
import net.wanji.utc.cache.CrossSchemePhaseTimeCountCache; import net.wanji.utc.cache.CrossSchemePhaseTimeCountCache;
...@@ -30,6 +31,7 @@ import net.wanji.utc.service.control.ControlCommandStrategyService; ...@@ -30,6 +31,7 @@ import net.wanji.utc.service.control.ControlCommandStrategyService;
import net.wanji.utc.task.SignalCommandSyncTask; import net.wanji.utc.task.SignalCommandSyncTask;
import net.wanji.utc.task.SignalStatusTask; import net.wanji.utc.task.SignalStatusTask;
import net.wanji.utc.util.StringUtils; import net.wanji.utc.util.StringUtils;
import net.wanji.utc.vo.SchemePhaseGreenTimeOptVO;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -679,4 +681,17 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy ...@@ -679,4 +681,17 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
} }
return jsonViewObject; return jsonViewObject;
} }
@Override
public JsonViewObject schemePhaseGreenTimeOpt(SchemePhaseGreenTimeOptVO vo) throws Exception {
String crossId = vo.getCrossId();
Integer schemeId = vo.getSchemeId();
Integer offset = vo.getOffset();
List<SchemePhaseGreenTimeOptVO.PhaseOptTime> phaseOptTimeList = vo.getPhaseOptTimeList();
// 获取方案环图中,将环图中相位转化为阶段中相位对应关系 需要磊磊存数据 t_scheme_ring_phase_mapping_info
// 将阶段中相位加减绿灯时间转化到环相位中
// 下发临时方案
return null;
}
} }
...@@ -34,5 +34,6 @@ public interface StaticInfoService { ...@@ -34,5 +34,6 @@ public interface StaticInfoService {
JsonViewObject schemeOptLog(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception; JsonViewObject schemeOptLog(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception;
JsonViewObject selectSchemeByParams(QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception; JsonViewObject selectSchemeByParams(QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception;
JsonViewObject selectSchemeOptLogByParams(CrossSchemeQueryDTO crossSchemeQueryDT) throws Exception; JsonViewObject selectSchemeOptLogByParams(CrossSchemeQueryDTO crossSchemeQueryDT) throws Exception;
JsonViewObject selectCrossSchemeRingsToStages(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception;
} }
...@@ -58,5 +58,5 @@ public interface WanJiCommonStaticInfoService { ...@@ -58,5 +58,5 @@ public interface WanJiCommonStaticInfoService {
JsonViewObject schemeOptLog(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception; JsonViewObject schemeOptLog(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception;
JsonViewObject selectSchemeByParams(QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception; JsonViewObject selectSchemeByParams(QueryByCrossIdAndTimeDTO queryByCrossIdAndTimeDTO) throws Exception;
JsonViewObject selectSchemeOptLogByParams(CrossSchemeQueryDTO crossSchemeQueryDT) throws Exception; JsonViewObject selectSchemeOptLogByParams(CrossSchemeQueryDTO crossSchemeQueryDT) throws Exception;
JsonViewObject selectCrossSchemeRingsToStages(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception;
} }
...@@ -251,4 +251,10 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -251,4 +251,10 @@ public class StaticInfoServiceImpl implements StaticInfoService {
jsonViewObject = wanjiCommonStaticInfoService.selectSchemeOptLogByParams(crossSchemeQueryDT); jsonViewObject = wanjiCommonStaticInfoService.selectSchemeOptLogByParams(crossSchemeQueryDT);
return jsonViewObject; return jsonViewObject;
} }
@Override
public JsonViewObject selectCrossSchemeRingsToStages(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
jsonViewObject = wanjiCommonStaticInfoService.selectCrossSchemeRingsToStages(crossSchemeRingsDTO);
return jsonViewObject; }
} }
...@@ -401,6 +401,23 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe ...@@ -401,6 +401,23 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
return JsonViewObject.newInstance().success(schemeOptLogPO); return JsonViewObject.newInstance().success(schemeOptLogPO);
} }
@Override
public JsonViewObject selectCrossSchemeRingsToStages(CrossSchemeRingsDTO crossSchemeRingsDTO) throws Exception {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossSchemeRingsDTO.getCrossId());
JsonViewObject jsonViewObject = null;
if ("HISENSE".equals(manufacturerIdCode)) {
FeignCommon utcFeignClientService = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode);
jsonViewObject = utcFeignClientService.selectCrossSchemeRingsToStages(crossSchemeRingsDTO);
} else {
//TODO 易华录及其它厂家
}
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
throw new Exception("根据时间和路口号查询方案号远程服务调用异常,异常信息" + jsonViewObject.getMessage());
}
return jsonViewObject;
}
/** /**
* @return net.wanji.databus.dao.entity.BaseCrossSchemePO * @return net.wanji.databus.dao.entity.BaseCrossSchemePO
* @Description 获取方案号 * @Description 获取方案号
......
...@@ -19,6 +19,7 @@ import net.wanji.utc.common.typeenum.BasicEnum; ...@@ -19,6 +19,7 @@ import net.wanji.utc.common.typeenum.BasicEnum;
import net.wanji.utc.service.control.ControlCommandService; import net.wanji.utc.service.control.ControlCommandService;
import net.wanji.utc.service.control.ControlCommandStrategyService; import net.wanji.utc.service.control.ControlCommandStrategyService;
import net.wanji.utc.util.StringUtils; import net.wanji.utc.util.StringUtils;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -34,6 +35,7 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -34,6 +35,7 @@ import java.util.concurrent.ConcurrentHashMap;
*/ */
@Component @Component
@Slf4j @Slf4j
@Profile("docker")
@SuppressWarnings("all") @SuppressWarnings("all")
public class CommandFaildTask { public class CommandFaildTask {
@Resource @Resource
......
...@@ -6,8 +6,6 @@ import lombok.extern.slf4j.Slf4j; ...@@ -6,8 +6,6 @@ import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.rest.JsonViewObject; import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.common.utils.tool.JacksonUtils; import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.common.utils.tool.StringUtils; import net.wanji.common.utils.tool.StringUtils;
import net.wanji.databus.dao.entity.CrossLightsPO;
import net.wanji.databus.dao.entity.CrossPhaseLightsPO;
import net.wanji.databus.dto.CrossSchemeRingsDTO; import net.wanji.databus.dto.CrossSchemeRingsDTO;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.CrossSchemeRings; import net.wanji.databus.po.CrossSchemeRings;
...@@ -172,6 +170,7 @@ public class HisenseSchemeRingTask { ...@@ -172,6 +170,7 @@ public class HisenseSchemeRingTask {
ringPhaseInfoDTO.setDirTurnInfoList(dirTurnList); ringPhaseInfoDTO.setDirTurnInfoList(dirTurnList);
ringPhaseInfoDTO.setChannel(channel); ringPhaseInfoDTO.setChannel(channel);
ringPhaseInfoDTO.setConcurrent(concurrentList.get(i)); ringPhaseInfoDTO.setConcurrent(concurrentList.get(i));
ringPhaseInfoDTO.setDate(new Date());
ringPhaseInfoDTOS.add(ringPhaseInfoDTO); ringPhaseInfoDTOS.add(ringPhaseInfoDTO);
} }
log.info("路口编号:{},当前环相位列表:{}", crossId, mapper.writeValueAsString(ringPhaseInfoDTOS)); log.info("路口编号:{},当前环相位列表:{}", crossId, mapper.writeValueAsString(ringPhaseInfoDTOS));
......
...@@ -40,6 +40,7 @@ import org.elasticsearch.common.xcontent.XContentType; ...@@ -40,6 +40,7 @@ import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -58,8 +59,9 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -58,8 +59,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
* @author Kent HAN * @author Kent HAN
* @date 2022/11/21 9:01 * @date 2022/11/21 9:01
*/ */
//@Component @Component
@Slf4j @Slf4j
@Profile("docker")
@SuppressWarnings("all") @SuppressWarnings("all")
public class SignalStatusTask { public class SignalStatusTask {
@Autowired @Autowired
......
package net.wanji.utc.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author duanruiming
* @date 2025/04/18 11:22
*/
@Data
@NoArgsConstructor
@ApiModel(value = "SchemePhaseGreenTimeOptVO", description = "方案相位绿灯时间优化下发请求体")
public class SchemePhaseGreenTimeOptVO {
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId;
@ApiModelProperty(name = "原方案ID",notes = "")
private Integer schemeId;
@ApiModelProperty(value = "优化模式 0-信控调优平台优化")
private Integer optType;
@ApiModelProperty(value = "周期")
private Integer cycle;
@ApiModelProperty(value = "相位差")
private Integer offset;
@ApiModelProperty(value = "调整时间表格")
private List<PhaseOptTime> phaseOptTimeList;
@Data
@NoArgsConstructor
@ApiModel(value = "PhaseOptTime", description = "调整时间表格元素")
public static class PhaseOptTime {
@ApiModelProperty(value = "相位编号")
private String phaseNo;
@ApiModelProperty(value = "原绿灯时长")
private Integer oriGreenTime;
@ApiModelProperty(value = "调整后绿灯时长")
private Integer optGreenTime;
@ApiModelProperty(value = "调整时间")
private Integer optTime;
}
}
package net.wanji.databus.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @ClassName CrossSchemeOptLog
* @Description 方案
* @Author zhouleilei
* @Date 2024/11/23 14:23
*/
@Data
public class CrossSchemeRingsToStagesPO {
@ApiModelProperty(value = "路口编号")
private String crossId;
@ApiModelProperty(value = "方案号")
private String schemeId;
@ApiModelProperty(value = "环数")
private String ringCount;
@ApiModelProperty(value = "周期长,单位秒")
private String cycleLen;
@ApiModelProperty(value = "相位差")
private String offset;
@ApiModelProperty(value = "绿信比")
private String split;
@ApiModelProperty(value = "划分后的相位")
private List<Phase> phaseList;
@Data
public static class Phase {
@ApiModelProperty(value = "相位编号")
private String phaseNo;
@ApiModelProperty(value = "阶段对应的相位号")
private String phaseList;
@ApiModelProperty(value = "相位时长")
private Integer phaseTime;
}
}
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