Commit 030d337e authored by zhouleilei's avatar zhouleilei

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

parent 1d5b26ce
...@@ -5,6 +5,7 @@ import net.wanji.databus.bo.CrossIdBO; ...@@ -5,6 +5,7 @@ import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dto.*; import net.wanji.databus.dto.*;
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.opt.vo.SchemeOptSendVO;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
...@@ -113,7 +114,7 @@ public interface FeignCommon { ...@@ -113,7 +114,7 @@ public interface FeignCommon {
// 临时方案 // 临时方案
@PostMapping("/tempScheme") @PostMapping("/tempScheme")
JsonViewObject tempScheme(Object obj); JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO);
@PostMapping("/control/findPlanId") @PostMapping("/control/findPlanId")
Integer findPlanId(@RequestParam Date datetime, @RequestParam String dateStr, @RequestParam String crossId); Integer findPlanId(@RequestParam Date datetime, @RequestParam String dateStr, @RequestParam String crossId);
......
...@@ -41,7 +41,7 @@ public class FeignProxyServiceImpl implements FeignProxyService { ...@@ -41,7 +41,7 @@ public class FeignProxyServiceImpl implements FeignProxyService {
SchemeSendVO schemeSendVO = new SchemeSendVO(); SchemeSendVO schemeSendVO = new SchemeSendVO();
BeanUtils.copyProperties(schemeOptSendVO, schemeSendVO); BeanUtils.copyProperties(schemeOptSendVO, schemeSendVO);
JsonViewObject jsonViewObject = utcFeignClients.tempScheme(schemeSendVO); JsonViewObject jsonViewObject = utcFeignClients.tempScheme(schemeOptSendVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
log.error("诊断优化手动下发优化方案,UTC服务调用异常", jsonViewObject); log.error("诊断优化手动下发优化方案,UTC服务调用异常", jsonViewObject);
throw new FeignServiceException("诊断优化手动下发优化方案,UTC服务调用异常"); throw new FeignServiceException("诊断优化手动下发优化方案,UTC服务调用异常");
......
...@@ -13,6 +13,7 @@ import net.wanji.databus.dto.StepingPhaseDTO; ...@@ -13,6 +13,7 @@ import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.TempSchemeSendVO; import net.wanji.databus.vo.TempSchemeSendVO;
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.opt.vo.SchemeOptSendVO;
import net.wanji.utc.service.control.ControlCommandStrategyService; import net.wanji.utc.service.control.ControlCommandStrategyService;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -217,8 +218,8 @@ public class ControlCommandController { ...@@ -217,8 +218,8 @@ public class ControlCommandController {
@AspectLog(description = "临时方案", operationType = BaseEnum.OperationTypeEnum.UPDATE) @AspectLog(description = "临时方案", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "临时方案", notes = "临时方案") @ApiOperation(value = "临时方案", notes = "临时方案")
@PostMapping("/tempScheme") @PostMapping("/tempScheme")
public JsonViewObject tempScheme(@RequestBody @Validated Object obj) throws Exception { public JsonViewObject tempScheme(@RequestBody @Validated SchemeOptSendVO schemeOptSendVO) throws Exception {
return controlCommandStrategyService.tempScheme(obj); return controlCommandStrategyService.tempScheme(schemeOptSendVO);
} }
/** /**
......
...@@ -3,8 +3,8 @@ package net.wanji.utc.service.control; ...@@ -3,8 +3,8 @@ package net.wanji.utc.service.control;
import net.wanji.common.framework.rest.JsonViewObject; import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dto.ExtendPhaseDTO; import net.wanji.databus.dto.ExtendPhaseDTO;
import net.wanji.databus.dto.StepingPhaseDTO; import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.TempSchemeSendVO;
import net.wanji.databus.vo.*; import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
import net.wanji.utc.po.hk.request.DelBaseConfigPO; import net.wanji.utc.po.hk.request.DelBaseConfigPO;
import java.util.Date; import java.util.Date;
...@@ -100,7 +100,7 @@ public interface ControlCommandService { ...@@ -100,7 +100,7 @@ public interface ControlCommandService {
JsonViewObject delBaseConfig(DelBaseConfigPO delBaseConfigPO) throws Exception; JsonViewObject delBaseConfig(DelBaseConfigPO delBaseConfigPO) throws Exception;
JsonViewObject timing(String crossCode, Date date) 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 tempSchemeDetail(TempSchemeSendVO tempSchemeSendVO) throws Exception;
JsonViewObject extendPhase(ExtendPhaseDTO extendPhase) throws Exception; JsonViewObject extendPhase(ExtendPhaseDTO extendPhase) throws Exception;
......
...@@ -6,6 +6,7 @@ import net.wanji.databus.dto.StepingPhaseDTO; ...@@ -6,6 +6,7 @@ import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.TempSchemeSendVO; import net.wanji.databus.vo.TempSchemeSendVO;
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.opt.vo.SchemeOptSendVO;
import java.util.Date; import java.util.Date;
...@@ -112,7 +113,7 @@ public interface ControlCommandStrategyService { ...@@ -112,7 +113,7 @@ public interface ControlCommandStrategyService {
* @return * @return
* @throws Exception * @throws Exception
*/ */
JsonViewObject tempScheme(Object obj) throws Exception; JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception;
/** /**
* 临时方案详情 * 临时方案详情
......
...@@ -11,6 +11,7 @@ import net.wanji.databus.po.BaseCrossLightsPO; ...@@ -11,6 +11,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.opt.vo.SchemeOptSendVO;
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;
...@@ -333,8 +334,8 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy ...@@ -333,8 +334,8 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
} }
@Override @Override
public JsonViewObject tempScheme(Object obj) throws Exception { public JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception {
JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(obj); JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(schemeOptSendVO);
return jsonViewObject; return jsonViewObject;
} }
......
...@@ -19,6 +19,7 @@ import net.wanji.databus.dao.mapper.ManufacturerInfoMapper; ...@@ -19,6 +19,7 @@ import net.wanji.databus.dao.mapper.ManufacturerInfoMapper;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.ManufacturerInfoPO; import net.wanji.databus.po.ManufacturerInfoPO;
import net.wanji.databus.vo.*; import net.wanji.databus.vo.*;
import net.wanji.opt.vo.SchemeOptSendVO;
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.CrossLightsDirEnum; import net.wanji.utc.common.typeenum.CrossLightsDirEnum;
...@@ -554,7 +555,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService { ...@@ -554,7 +555,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
} }
@Override @Override
public JsonViewObject tempScheme(Object obj) throws Exception { public JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception {
return null; return null;
} }
......
package net.wanji.utc.service.control.impl; package net.wanji.utc.service.control.impl;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.wanji.common.framework.rest.JsonViewObject; import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dto.ExtendPhaseDTO; import net.wanji.databus.dto.ExtendPhaseDTO;
import net.wanji.databus.dto.StepingPhaseDTO; import net.wanji.databus.dto.StepingPhaseDTO;
import net.wanji.databus.vo.*; import net.wanji.databus.vo.*;
import net.wanji.feign.service.common.FeignCommon; import net.wanji.feign.service.common.FeignCommon;
import net.wanji.opt.vo.SchemeOptSendVO;
import net.wanji.utc.cache.CrossInfoCache; import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.cache.UtcFeignClientCache; import net.wanji.utc.cache.UtcFeignClientCache;
import net.wanji.utc.common.constant.Constants; import net.wanji.utc.common.constant.Constants;
...@@ -19,9 +19,7 @@ import org.slf4j.LoggerFactory; ...@@ -19,9 +19,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.*;
import java.util.LinkedHashMap;
import java.util.Objects;
/** /**
* @author duanruiming * @author duanruiming
...@@ -175,32 +173,71 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService { ...@@ -175,32 +173,71 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
} }
@Override @Override
public JsonViewObject tempScheme(Object obj) throws Exception { public JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
if (!obj.toString().contains("split")) { //东土协议
//东土协议 /* TempSchemeVO tempSchemeVO = (TempSchemeVO) obj;
TempSchemeVO tempSchemeVO = (TempSchemeVO) obj;
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeVO.getCrossCode()); String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeVO.getCrossCode());
jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempScheme(tempSchemeVO); jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempScheme(tempSchemeVO);
} else { */
//海信协议 //海信协议
ObjectMapper objectMapper = new ObjectMapper(); TempSchemeSendVO tempSchemeSendVO = getTempSchemeSendVO(schemeOptSendVO);
TempSchemeSendVO tempSchemeSendVO; String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode());
if (obj instanceof LinkedHashMap) { jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempSchemeDetail(tempSchemeSendVO);
tempSchemeSendVO = objectMapper.convertValue(obj, TempSchemeSendVO.class);
} else {
tempSchemeSendVO = (TempSchemeSendVO) obj;
}
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode());
jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempSchemeDetail(tempSchemeSendVO);
}
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) { if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发临时方案成功!"); return jsonViewObject.success("万集标准协议下发临时方案成功!");
} }
return jsonViewObject.fail("万集标准协议下发临时方案失败!"); 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 @Override
public JsonViewObject tempSchemeDetail(TempSchemeSendVO tempSchemeSendVO) throws Exception { public JsonViewObject tempSchemeDetail(TempSchemeSendVO tempSchemeSendVO) throws Exception {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode()); 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