Commit 030d337e authored by zhouleilei's avatar zhouleilei

海信-适配系统 临时方案处理 功能

parent 1d5b26ce
......@@ -5,6 +5,7 @@ import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dto.*;
import net.wanji.databus.po.SaveToUtcPO;
import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -113,7 +114,7 @@ public interface FeignCommon {
// 临时方案
@PostMapping("/tempScheme")
JsonViewObject tempScheme(Object obj);
JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO);
@PostMapping("/control/findPlanId")
Integer findPlanId(@RequestParam Date datetime, @RequestParam String dateStr, @RequestParam String crossId);
......
......@@ -41,7 +41,7 @@ public class FeignProxyServiceImpl implements FeignProxyService {
SchemeSendVO schemeSendVO = new SchemeSendVO();
BeanUtils.copyProperties(schemeOptSendVO, schemeSendVO);
JsonViewObject jsonViewObject = utcFeignClients.tempScheme(schemeSendVO);
JsonViewObject jsonViewObject = utcFeignClients.tempScheme(schemeOptSendVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
log.error("诊断优化手动下发优化方案,UTC服务调用异常", jsonViewObject);
throw new FeignServiceException("诊断优化手动下发优化方案,UTC服务调用异常");
......
......@@ -13,6 +13,7 @@ import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.TempSchemeSendVO;
import net.wanji.databus.po.SaveToUtcPO;
import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
import net.wanji.utc.service.control.ControlCommandStrategyService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.validation.annotation.Validated;
......@@ -217,8 +218,8 @@ public class ControlCommandController {
@AspectLog(description = "临时方案", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "临时方案", notes = "临时方案")
@PostMapping("/tempScheme")
public JsonViewObject tempScheme(@RequestBody @Validated Object obj) throws Exception {
return controlCommandStrategyService.tempScheme(obj);
public JsonViewObject tempScheme(@RequestBody @Validated SchemeOptSendVO schemeOptSendVO) throws Exception {
return controlCommandStrategyService.tempScheme(schemeOptSendVO);
}
/**
......
......@@ -3,8 +3,8 @@ package net.wanji.utc.service.control;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dto.ExtendPhaseDTO;
import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.TempSchemeSendVO;
import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
import net.wanji.utc.po.hk.request.DelBaseConfigPO;
import java.util.Date;
......@@ -100,7 +100,7 @@ public interface ControlCommandService {
JsonViewObject delBaseConfig(DelBaseConfigPO delBaseConfigPO) throws Exception;
JsonViewObject timing(String crossCode, Date date) throws Exception;
JsonViewObject tempScheme(Object obj) throws Exception;
JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception;
JsonViewObject tempSchemeDetail(TempSchemeSendVO tempSchemeSendVO) throws Exception;
JsonViewObject extendPhase(ExtendPhaseDTO extendPhase) throws Exception;
......
......@@ -6,6 +6,7 @@ import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.TempSchemeSendVO;
import net.wanji.databus.po.SaveToUtcPO;
import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
import java.util.Date;
......@@ -112,7 +113,7 @@ public interface ControlCommandStrategyService {
* @return
* @throws Exception
*/
JsonViewObject tempScheme(Object obj) throws Exception;
JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception;
/**
* 临时方案详情
......
......@@ -11,6 +11,7 @@ import net.wanji.databus.po.BaseCrossLightsPO;
import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.SaveToUtcPO;
import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.cache.CrossPhaseDirTurnCache;
import net.wanji.utc.cache.CrossSchemePhaseTimeCountCache;
......@@ -333,8 +334,8 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
}
@Override
public JsonViewObject tempScheme(Object obj) throws Exception {
JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(obj);
public JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception {
JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(schemeOptSendVO);
return jsonViewObject;
}
......
......@@ -19,6 +19,7 @@ import net.wanji.databus.dao.mapper.ManufacturerInfoMapper;
import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.ManufacturerInfoPO;
import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
import net.wanji.utc.common.exception.ControlException;
import net.wanji.utc.common.typeenum.BasicEnum;
import net.wanji.utc.common.typeenum.CrossLightsDirEnum;
......@@ -554,7 +555,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
}
@Override
public JsonViewObject tempScheme(Object obj) throws Exception {
public JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception {
return null;
}
......
package net.wanji.utc.service.control.impl;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dto.ExtendPhaseDTO;
import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.*;
import net.wanji.feign.service.common.FeignCommon;
import net.wanji.opt.vo.SchemeOptSendVO;
import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.cache.UtcFeignClientCache;
import net.wanji.utc.common.constant.Constants;
......@@ -19,9 +19,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Objects;
import java.util.*;
/**
* @author duanruiming
......@@ -175,32 +173,71 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
}
@Override
public JsonViewObject tempScheme(Object obj) throws Exception {
public JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
if (!obj.toString().contains("split")) {
//东土协议
TempSchemeVO tempSchemeVO = (TempSchemeVO) obj;
/* TempSchemeVO tempSchemeVO = (TempSchemeVO) obj;
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeVO.getCrossCode());
jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempScheme(tempSchemeVO);
} else {
*/
//海信协议
ObjectMapper objectMapper = new ObjectMapper();
TempSchemeSendVO tempSchemeSendVO;
if (obj instanceof LinkedHashMap) {
tempSchemeSendVO = objectMapper.convertValue(obj, TempSchemeSendVO.class);
} else {
tempSchemeSendVO = (TempSchemeSendVO) obj;
}
TempSchemeSendVO tempSchemeSendVO = getTempSchemeSendVO(schemeOptSendVO);
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode());
jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempSchemeDetail(tempSchemeSendVO);
}
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发临时方案成功!");
}
return jsonViewObject.fail("万集标准协议下发临时方案失败!");
}
/**
* @return net.wanji.databus.vo.TempSchemeSendVO
* @Description 逻辑处理,拼接临时方案参数
* @Param [schemeOptSendVO]
**/
private TempSchemeSendVO getTempSchemeSendVO(SchemeOptSendVO schemeOptSendVO) {
TempSchemeSendVO tempSchemeSendVO = new TempSchemeSendVO();
//路口号
String crossCode = schemeOptSendVO.getCrossCode();
tempSchemeSendVO.setCrossCode(crossCode);
List<SchemeSendVO.Pattern> patternList = schemeOptSendVO.getPatternList();
if (Optional.ofNullable(patternList).isPresent()) {
//现在系统只传一个方案
SchemeSendVO.Pattern pattern = patternList.get(0);
//相位差
tempSchemeSendVO.setOffset(pattern.getOffset());
//周期
tempSchemeSendVO.setCycle(pattern.getCycle());
//方案号
tempSchemeSendVO.setPattern(pattern.getPatternNo());
//优化模式,现在只支持一,绿信比
tempSchemeSendVO.setType("1");
//环
List<SchemeSendVO.Pattern.Ring> rings = pattern.getRings();
List<Integer> list = new ArrayList<>();
for (SchemeSendVO.Pattern.Ring ring : rings) {
//相位集合
List<SchemeSendVO.Pattern.Ring.Phase> phaseList = ring.getPhaseList();
for (SchemeSendVO.Pattern.Ring.Phase phase : phaseList) {
String redTime = phase.getRedTime();
String greenTime = phase.getGreenTime();
String yellowTime = phase.getYellowTime();
//绿信比=相位绿灯时间+相位全红时间+相位黄灯时间
int phaseTime = Integer.parseInt(greenTime) + Integer.parseInt(redTime) + Integer.parseInt(yellowTime);
list.add(phaseTime);
}
}
//海信有16个相位,不足的补0
if (list.size() < 16) {
for (int i = list.size(); i < 16; i++) {
list.add(0);
}
}
String split = list.toString().replaceAll("^\\[|\\]$", "");
tempSchemeSendVO.setSplit(split);
}
return tempSchemeSendVO;
}
@Override
public JsonViewObject tempSchemeDetail(TempSchemeSendVO tempSchemeSendVO) throws Exception {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode());
......
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