Commit c8bd4dae authored by duanruiming's avatar duanruiming

Merge remote-tracking branch 'origin/master'

parents f1c7bdb2 030d337e
...@@ -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.schemeSend(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服务调用异常");
......
...@@ -67,50 +67,33 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -67,50 +67,33 @@ public class ControlCommandServiceImpl implements ControlCommandService {
element.addElement(HttpConstants.MESSAGETYPE).setText(HttpConstants.MESSAGETYPE_22); element.addElement(HttpConstants.MESSAGETYPE).setText(HttpConstants.MESSAGETYPE_22);
Element messageContent = (Element) document.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_MESSAGECONTENT); Element messageContent = (Element) document.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_MESSAGECONTENT);
messageContent.addElement(HttpConstants.SPOT).setText(crossInfoPOExt.getCode()); messageContent.addElement(HttpConstants.SPOT).setText(crossInfoPOExt.getCode());
messageContent.addElement(HttpConstants.COMMAND).setText(command+""); messageContent.addElement(HttpConstants.COMMAND).setText(command + "");
//目前海信步进幅度只支持0 //目前海信步进幅度只支持0
messageContent.addElement(HttpConstants.CTRLSTEP).setText("0"); messageContent.addElement(HttpConstants.CTRLSTEP).setText("0");
if (command == 0){ if (stepNum == 0) {
//取消步进,防止瞎传stepNum //顺序步进,循环一次
stepNum = 0; stepNum = 1;
} }
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
//给海信发送http请求 //给海信发送http请求
for (int i = 0; i < stepNum; i++) { for (int i = 0; i < stepNum; i++) {
// String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML()); String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML());
String post = " <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + if (StringUtils.isNotBlank(post)) {
" <systemScription System=\"TCIP\" Version=\"1.0\">\n" +
" <subSystem>Hisense</subSystem>\n" +
" <messageType>16</messageType>\n" +
" <isRequest>1</isRequest>\n" +
" <seq>{formatted_time}</seq>\n" +
" <needResponse>1</needResponse> \n" +
" <result>1</result>\n" +
" <flag>0</flag>\n" +
" <messageContent>\n" +
" <Spot>{crossId}</Spot>\n" +
" <Pattern>0</Pattern>\n" +
" </messageContent>\n" +
" </systemScription>";
if (StringUtils.isNotBlank(post)){
Document postResult = DocumentHelper.parseText(post); Document postResult = DocumentHelper.parseText(post);
String result = postResult.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_RESULT).getText(); String result = postResult.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_RESULT).getText();
if (HttpConstants.RESULT_1.equals(result) || HttpConstants.RESULT_2.equals(result)) { if (HttpConstants.RESULT_1.equals(result) || HttpConstants.RESULT_2.equals(result)) {
log.info("路口号 :{},第 {} 次步进成功,result:{}", crossInfoPOExt.getCode(), i + 1, result); log.info("路口号 :{},第 {} 次步进成功,result:{}", crossInfoPOExt.getCode(), i + 1, result);
jsonViewObject = jsonViewObject.success("相位步进 - 控制成功"); } else {
}else {
log.error("路口号 :{},第 {} 次步进失败,result:{}", crossInfoPOExt.getCode(), i + 1, result); log.error("路口号 :{},第 {} 次步进失败,result:{}", crossInfoPOExt.getCode(), i + 1, result);
return jsonViewObject.fail("相位步进失败,路口号:"+crossInfoPOExt.getCode()); return jsonViewObject.fail("相位步进失败,路口号:" + crossInfoPOExt.getCode());
} }
//停顿10ms //停顿10ms
Thread.sleep(10); Thread.sleep(10);
}else { } else {
return jsonViewObject.fail("相位步进失败,路口号: "+crossInfoPOExt.getCode()); return jsonViewObject.fail("相位步进失败,路口号: " + crossInfoPOExt.getCode());
} }
} }
return jsonViewObject; return jsonViewObject.success("相位步进 - 控制成功");
} }
@Override @Override
...@@ -158,6 +141,7 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -158,6 +141,7 @@ public class ControlCommandServiceImpl implements ControlCommandService {
@Override @Override
public JsonViewObject phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception { public JsonViewObject phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception {
//TODO 海信相位配时下发
return null; return null;
} }
...@@ -177,10 +161,19 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -177,10 +161,19 @@ public class ControlCommandServiceImpl implements ControlCommandService {
messageContent.addElement(HttpConstants.SPOT).setText(crossInfoPOExt.getCode()); messageContent.addElement(HttpConstants.SPOT).setText(crossInfoPOExt.getCode());
messageContent.addElement(HttpConstants.PATTERN).setText(tempSchemeSendVO.getPattern()); messageContent.addElement(HttpConstants.PATTERN).setText(tempSchemeSendVO.getPattern());
messageContent.addElement(HttpConstants.CYCLE).setText(tempSchemeSendVO.getCycle()); messageContent.addElement(HttpConstants.CYCLE).setText(tempSchemeSendVO.getCycle());
//暂时按照神思的写死 //如果为空赋值神思的默认值
messageContent.addElement(HttpConstants.OFFSET).setText("0"); if (ObjectUtils.isEmpty(tempSchemeSendVO.getOffset())) {
messageContent.addElement(HttpConstants.TYPE).setText("1"); tempSchemeSendVO.setOffset("0");
messageContent.addElement(HttpConstants.SPLIT).setText("40,0,0,40,50,50,0,0,0,0,0,0,0,0,0,0"); }
if (ObjectUtils.isEmpty(tempSchemeSendVO.getType())) {
tempSchemeSendVO.setType("1");
}
if (ObjectUtils.isEmpty(tempSchemeSendVO.getSplit())) {
tempSchemeSendVO.setSplit("40,0,0,40,50,50,0,0,0,0,0,0,0,0,0,0");
}
messageContent.addElement(HttpConstants.OFFSET).setText(tempSchemeSendVO.getOffset());
messageContent.addElement(HttpConstants.TYPE).setText(tempSchemeSendVO.getType());
messageContent.addElement(HttpConstants.SPLIT).setText(tempSchemeSendVO.getSplit());
//给海信发送http请求 //给海信发送http请求
String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML()); String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML());
...@@ -297,20 +290,20 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -297,20 +290,20 @@ public class ControlCommandServiceImpl implements ControlCommandService {
//给海信发送http请求 //给海信发送http请求
for (int i = 0; i < stepingPhaseDTO.getStepCount(); i++) { for (int i = 0; i < stepingPhaseDTO.getStepCount(); i++) {
String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML()); String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML());
if (StringUtils.isNotBlank(post)){ if (StringUtils.isNotBlank(post)) {
Document postResult = DocumentHelper.parseText(post); Document postResult = DocumentHelper.parseText(post);
String result = postResult.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_RESULT).getText(); String result = postResult.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_RESULT).getText();
if (HttpConstants.RESULT_1.equals(result) || HttpConstants.RESULT_2.equals(result)) { if (HttpConstants.RESULT_1.equals(result) || HttpConstants.RESULT_2.equals(result)) {
log.info("路口号 :{},第 {} 次步进成功,result:{}", stepingPhaseDTO.getCrossId(), i + 1, result); log.info("路口号 :{},第 {} 次步进成功,result:{}", stepingPhaseDTO.getCrossId(), i + 1, result);
jsonViewObject = jsonViewObject.success("相位步进 - 控制成功"); jsonViewObject = jsonViewObject.success("相位步进 - 控制成功");
}else { } else {
log.error("路口号 :{},第 {} 次步进失败,result:{}", stepingPhaseDTO.getCrossId(), i + 1, result); log.error("路口号 :{},第 {} 次步进失败,result:{}", stepingPhaseDTO.getCrossId(), i + 1, result);
return jsonViewObject.fail("相位步进失败,路口号:"+stepingPhaseDTO.getCrossId()); return jsonViewObject.fail("相位步进失败,路口号:" + stepingPhaseDTO.getCrossId());
} }
//停顿10ms //停顿10ms
Thread.sleep(10); Thread.sleep(10);
}else { } else {
return jsonViewObject.fail("相位步进失败,路口号: "+stepingPhaseDTO.getCrossId()); return jsonViewObject.fail("相位步进失败,路口号: " + stepingPhaseDTO.getCrossId());
} }
} }
......
...@@ -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,10 +334,8 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy ...@@ -333,10 +334,8 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
} }
@Override @Override
public JsonViewObject tempScheme(Object obj) throws Exception { public JsonViewObject tempScheme(SchemeOptSendVO schemeOptSendVO) throws Exception {
String crossCode = getCrossCode(obj); JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(schemeOptSendVO);
String manufacturerCode = crossInfoCache.getManufacturerCodeByCrossId(crossCode);
JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(obj);
return jsonViewObject; return jsonViewObject;
} }
...@@ -356,7 +355,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy ...@@ -356,7 +355,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
// 将值转换为String类型(假设crossCode是String类型) // 将值转换为String类型(假设crossCode是String类型)
return (String) crossCodeValue; return (String) crossCodeValue;
} }
}
@Override @Override
public JsonViewObject tempSchemeDetail(TempSchemeSendVO tempSchemeSendVO) throws Exception { public JsonViewObject tempSchemeDetail(TempSchemeSendVO tempSchemeSendVO) throws Exception {
......
...@@ -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;
} }
......
...@@ -4,9 +4,9 @@ import lombok.RequiredArgsConstructor; ...@@ -4,9 +4,9 @@ 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.TempSchemeSendVO;
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,8 +19,7 @@ import org.slf4j.LoggerFactory; ...@@ -19,8 +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.Objects;
/** /**
* @author duanruiming * @author duanruiming
...@@ -174,21 +173,70 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService { ...@@ -174,21 +173,70 @@ 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 instanceof TempSchemeVO) { //东土协议
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 if (obj instanceof TempSchemeSendVO) { */
TempSchemeSendVO tempSchemeSendVO = (TempSchemeSendVO) obj; //海信协议
TempSchemeSendVO tempSchemeSendVO = getTempSchemeSendVO(schemeOptSendVO);
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode()); String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode());
jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempScheme(tempSchemeSendVO); 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 {
......
...@@ -13,7 +13,6 @@ import javax.validation.constraints.Pattern; ...@@ -13,7 +13,6 @@ import javax.validation.constraints.Pattern;
* @date 2024/11/4 16:14:27 * @date 2024/11/4 16:14:27
*/ */
@Data @Data
@Builder
public class TempSchemeSendVO { public class TempSchemeSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
...@@ -22,10 +21,20 @@ public class TempSchemeSendVO { ...@@ -22,10 +21,20 @@ public class TempSchemeSendVO {
private String crossCode; private String crossCode;
@ApiModelProperty(value = "基础方案号", notes = "优化的基础方案号,该方案号需在信号机提前配置") @ApiModelProperty(value = "基础方案号", notes = "优化的基础方案号,该方案号需在信号机提前配置")
@NotBlank(message = "基础方案号") @NotBlank(message = "基础方案号不能为空")
private String pattern; private String pattern;
@ApiModelProperty(value = "周期长", notes = "需要优化的周期长,单位秒") @ApiModelProperty(value = "周期长", notes = "需要优化的周期长,单位秒")
@NotBlank(message = "周期长") @NotBlank(message = "周期长不能为空")
private String cycle; private String cycle;
@ApiModelProperty(value = "相位差", notes = "相位差。需要优化的相位差,单位秒")
private String offset;
@ApiModelProperty(value = "优化模式", notes = "目前支持 Type=1(预案模式,按时间调整),Type=15(瓶颈模式,\n" +
"按比例调整)")
private String type;
@ApiModelProperty(value = "比值", notes = "Type=1 时为预案模式,值为绿信比时间,Type=15 时为瓶颈模式,值为调整比例")
private String split;
} }
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