Commit b37027bf authored by zhouleilei's avatar zhouleilei

海信-系统兼容临时方案

parent 5d13c4bb
...@@ -67,10 +67,10 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -67,10 +67,10 @@ 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 (command == 0) {
//取消步进,防止瞎传stepNum //取消步进,防止瞎传stepNum
stepNum = 0; stepNum = 0;
} }
...@@ -93,20 +93,20 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -93,20 +93,20 @@ public class ControlCommandServiceImpl implements ControlCommandService {
" <Pattern>0</Pattern>\n" + " <Pattern>0</Pattern>\n" +
" </messageContent>\n" + " </messageContent>\n" +
" </systemScription>"; " </systemScription>";
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:{}", crossInfoPOExt.getCode(), i + 1, result); log.info("路口号 :{},第 {} 次步进成功,result:{}", crossInfoPOExt.getCode(), i + 1, result);
jsonViewObject = jsonViewObject.success("相位步进 - 控制成功"); 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());
} }
} }
...@@ -177,10 +177,19 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -177,10 +177,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 +306,20 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -297,20 +306,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());
} }
} }
......
...@@ -334,8 +334,6 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy ...@@ -334,8 +334,6 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Override @Override
public JsonViewObject tempScheme(Object obj) throws Exception { public JsonViewObject tempScheme(Object obj) throws Exception {
String crossCode = getCrossCode(obj);
String manufacturerCode = crossInfoCache.getManufacturerCodeByCrossId(crossCode);
JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(obj); JsonViewObject jsonViewObject = wanJiControlCommandService.tempScheme(obj);
return jsonViewObject; return jsonViewObject;
} }
......
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.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.utc.cache.CrossInfoCache; import net.wanji.utc.cache.CrossInfoCache;
...@@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -176,20 +177,31 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService { ...@@ -176,20 +177,31 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Override @Override
public JsonViewObject tempScheme(Object obj) throws Exception { public JsonViewObject tempScheme(Object obj) throws Exception {
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
if (obj instanceof TempSchemeVO) { 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 if (obj instanceof TempSchemeSendVO) { } else {
TempSchemeSendVO tempSchemeSendVO = (TempSchemeSendVO) obj; //海信协议
// TempSchemeSendVO tempSchemeSendVO = (TempSchemeSendVO) obj;
ObjectMapper objectMapper = new ObjectMapper();
TempSchemeSendVO tempSchemeSendVO;
if (obj instanceof LinkedHashMap) {
tempSchemeSendVO = objectMapper.convertValue(obj, TempSchemeSendVO.class);
} else {
tempSchemeSendVO = (TempSchemeSendVO) obj;
}
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode()); String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(tempSchemeSendVO.getCrossCode());
jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).tempSchemeDetail(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("万集标准协议下发临时方案失败!");
} }
@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());
......
...@@ -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