Commit a2f85eae authored by duanruiming's avatar duanruiming

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	signal-utc-hisense-service/pom.xml
parents 245eca7b f4a0ddd6
...@@ -346,7 +346,7 @@ ...@@ -346,7 +346,7 @@
<addClasspath>true</addClasspath> <addClasspath>true</addClasspath>
<!--<classpathPrefix>lib/</classpathPrefix>--> <!--<classpathPrefix>lib/</classpathPrefix>-->
<classpathPrefix></classpathPrefix> <classpathPrefix></classpathPrefix>
<mainClass>net.wanji.utc.hisense.HisenseApplication</mainClass> <mainClass> net.wanji.utc.hisense.HisenseApplication</mainClass>
</manifest> </manifest>
<manifestEntries> <manifestEntries>
<Class-Path>../resources/</Class-Path> <Class-Path>../resources/</Class-Path>
......
...@@ -33,6 +33,8 @@ public class HttpConstants { ...@@ -33,6 +33,8 @@ public class HttpConstants {
public static final String SPLIT = "Split"; public static final String SPLIT = "Split";
//5.7协调状态 获取方案号 //5.7协调状态 获取方案号
public static final String MESSAGETYPE_12 = "12"; public static final String MESSAGETYPE_12 = "12";
//5.4. 联机状态
public static final String MESSAGETYPE_3 = "3";
//5.16. 方案优化控制 - 设置临时方案 //5.16. 方案优化控制 - 设置临时方案
public static final String MESSAGETYPE_39 = "39"; public static final String MESSAGETYPE_39 = "39";
//5.10. 手动方案控制- 恢复固定配时 //5.10. 手动方案控制- 恢复固定配时
......
...@@ -19,6 +19,7 @@ import net.wanji.databus.po.SignalStatusLogPO; ...@@ -19,6 +19,7 @@ import net.wanji.databus.po.SignalStatusLogPO;
import net.wanji.databus.vo.LightsStatusVO; import net.wanji.databus.vo.LightsStatusVO;
import net.wanji.utc.hisense.pojo.convert.HisenseLightStatusPojo; import net.wanji.utc.hisense.pojo.convert.HisenseLightStatusPojo;
import net.wanji.utc.hisense.service.SignalStatusService; import net.wanji.utc.hisense.service.SignalStatusService;
import org.dom4j.DocumentException;
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.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -48,7 +49,12 @@ public class SignalStatusController { ...@@ -48,7 +49,12 @@ public class SignalStatusController {
@ApiResponse(code = 200, message = "OK", response = SignalStatusLogPO.class) @ApiResponse(code = 200, message = "OK", response = SignalStatusLogPO.class)
}) })
public JsonViewObject runningStatusAlarm(String crossId) { public JsonViewObject runningStatusAlarm(String crossId) {
List<SignalStatusLogPO> signalStatusLogPOList = signalStatusService.runningStatusAlarm(crossId); List<SignalStatusLogPO> signalStatusLogPOList = null;
try {
signalStatusLogPOList = signalStatusService.runningStatusAlarm(crossId);
} catch (DocumentException e) {
throw new RuntimeException(e);
}
return JsonViewObject.newInstance().success(signalStatusLogPOList); return JsonViewObject.newInstance().success(signalStatusLogPOList);
} }
......
...@@ -3,6 +3,7 @@ package net.wanji.utc.hisense.service; ...@@ -3,6 +3,7 @@ package net.wanji.utc.hisense.service;
import net.wanji.databus.po.SignalStatusLogPO; import net.wanji.databus.po.SignalStatusLogPO;
import net.wanji.databus.vo.LightsStatusVO; import net.wanji.databus.vo.LightsStatusVO;
import net.wanji.utc.hisense.pojo.convert.HisenseLightStatusPojo; import net.wanji.utc.hisense.pojo.convert.HisenseLightStatusPojo;
import org.dom4j.DocumentException;
import java.util.List; import java.util.List;
...@@ -18,7 +19,7 @@ public interface SignalStatusService { ...@@ -18,7 +19,7 @@ public interface SignalStatusService {
* @param crossId * @param crossId
* @return * @return
*/ */
List<SignalStatusLogPO> runningStatusAlarm(String crossId); List<SignalStatusLogPO> runningStatusAlarm(String crossId) throws DocumentException;
List<LightsStatusVO> lightStatus(String crossId); List<LightsStatusVO> lightStatus(String crossId);
void receiveLightStatus(List<HisenseLightStatusPojo> hisenseLightStatusPojos) throws Exception; void receiveLightStatus(List<HisenseLightStatusPojo> hisenseLightStatusPojos) throws Exception;
......
...@@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j;
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.CrossLightsPO;
import net.wanji.databus.dao.mapper.CrossInfoMapper;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.SignalStatusLogPO; import net.wanji.databus.po.SignalStatusLogPO;
import net.wanji.databus.vo.LightsStatusVO; import net.wanji.databus.vo.LightsStatusVO;
...@@ -13,6 +14,8 @@ import net.wanji.utc.hisense.cache.CrossInfoCache; ...@@ -13,6 +14,8 @@ import net.wanji.utc.hisense.cache.CrossInfoCache;
import net.wanji.utc.hisense.cache.CrossPhaseDirTurnCache; import net.wanji.utc.hisense.cache.CrossPhaseDirTurnCache;
import net.wanji.utc.hisense.cache.CrossSchemePhaseTimeCountCache; import net.wanji.utc.hisense.cache.CrossSchemePhaseTimeCountCache;
import net.wanji.utc.hisense.cache.SignalDataCache; import net.wanji.utc.hisense.cache.SignalDataCache;
import net.wanji.utc.hisense.common.OperationBaseDom;
import net.wanji.utc.hisense.common.constants.HttpConstants;
import net.wanji.utc.hisense.common.enums.CrossLisghtsLaneDirEnum; import net.wanji.utc.hisense.common.enums.CrossLisghtsLaneDirEnum;
import net.wanji.utc.hisense.common.enums.DataBrainControlModeEnum; import net.wanji.utc.hisense.common.enums.DataBrainControlModeEnum;
import net.wanji.utc.hisense.pojo.CrossPhaseDirTurnPojo; import net.wanji.utc.hisense.pojo.CrossPhaseDirTurnPojo;
...@@ -21,11 +24,17 @@ import net.wanji.utc.hisense.pojo.dto.CrossSchemePhaseCountDownDTO; ...@@ -21,11 +24,17 @@ import net.wanji.utc.hisense.pojo.dto.CrossSchemePhaseCountDownDTO;
import net.wanji.utc.hisense.pojo.dto.PhaseCountDownDTO; import net.wanji.utc.hisense.pojo.dto.PhaseCountDownDTO;
import net.wanji.utc.hisense.service.SignalStatusService; import net.wanji.utc.hisense.service.SignalStatusService;
import net.wanji.utc.hisense.util.OkHttpClientUtil; import net.wanji.utc.hisense.util.OkHttpClientUtil;
import net.wanji.utc.hisense.util.OkHttpClientUtil;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
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 org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -36,6 +45,10 @@ import java.util.stream.Collectors; ...@@ -36,6 +45,10 @@ import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class SignalStatusServiceImpl implements SignalStatusService { public class SignalStatusServiceImpl implements SignalStatusService {
@Value("${hisense.url}")
private String hisenseUrl;
@Resource
private CrossInfoMapper crossInfoMapper;
@Value("${hisenseLightsStatus.shensiUrl}") @Value("${hisenseLightsStatus.shensiUrl}")
private String shensiUrl; private String shensiUrl;
...@@ -43,12 +56,56 @@ public class SignalStatusServiceImpl implements SignalStatusService { ...@@ -43,12 +56,56 @@ public class SignalStatusServiceImpl implements SignalStatusService {
private String baiduUrl; private String baiduUrl;
@Override @Override
public List<SignalStatusLogPO> runningStatusAlarm(String crossId) { public List<SignalStatusLogPO> runningStatusAlarm(String crossId) throws DocumentException {
//从缓存中拿路口信息
CrossInfoPO crossInfoPO = CrossInfoCache.getCrossInfoCache().get(crossId);
//组装document
Document document = OperationBaseDom.generateBaseDoc();
Element element = (Element) document.selectSingleNode(HttpConstants.SYSTEMSCRIPTION);
element.addElement(HttpConstants.MESSAGETYPE).setText(HttpConstants.MESSAGETYPE_3);
Element messageContent = (Element) document.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_MESSAGECONTENT);
messageContent.addElement(HttpConstants.SPOT).setText(crossInfoPO.getCode());
List<SignalStatusLogPO> list = new ArrayList<>();
//给海信发送http请求
String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML());
if (StringUtils.isBlank(post)) {
log.error("请求 5.4. 联机状态 失败");
return null;
}
Document postResult = DocumentHelper.parseText(post);
String result = postResult.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_RESULT).getText();
if (HttpConstants.RESULT_1.equals(result)) {
//成功
String spot = postResult.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_MESSAGECONTENT).valueOf("Spot");
//Status:联机状态。0-离线,1-在线。
String status = postResult.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_MESSAGECONTENT).valueOf("Status");
SignalStatusLogPO signalStatusLogPO = new SignalStatusLogPO();
signalStatusLogPO.setCrossId(crossId);
signalStatusLogPO.setSignalId(crossInfoPO.getCode());
signalStatusLogPO.setStatus(Integer.valueOf(status));
if ("1".equals(status)) {
signalStatusLogPO.setFaultType(0);
}else {
signalStatusLogPO.setFaultType(5);
}
signalStatusLogPO.setControlType(null);
signalStatusLogPO.setGmtCreate(null);
list.add(signalStatusLogPO);
return list;
} else {
//失败
log.error("请求 5.4. 联机状态 失败");
}
return null; return null;
} }
/** /**
* http 形式 * http 形式
*
* @param crossId * @param crossId
* @return * @return
*/ */
...@@ -141,7 +198,8 @@ public class SignalStatusServiceImpl implements SignalStatusService { ...@@ -141,7 +198,8 @@ public class SignalStatusServiceImpl implements SignalStatusService {
if (!CollectionUtils.isEmpty(hisenseLightStatusPojos)) { if (!CollectionUtils.isEmpty(hisenseLightStatusPojos)) {
for (HisenseLightStatusPojo hisenseLightStatusPojo : hisenseLightStatusPojos) { for (HisenseLightStatusPojo hisenseLightStatusPojo : hisenseLightStatusPojos) {
String bodyStr = hisenseLightStatusPojo.getBody(); String bodyStr = hisenseLightStatusPojo.getBody();
List<HisenseLightStatusPojo.Body> bodies = jackson.readValue(bodyStr, new TypeReference<List<HisenseLightStatusPojo.Body>>() {}); List<HisenseLightStatusPojo.Body> bodies = jackson.readValue(bodyStr, new TypeReference<List<HisenseLightStatusPojo.Body>>() {
});
if (!CollectionUtils.isEmpty(bodies)) { if (!CollectionUtils.isEmpty(bodies)) {
for (HisenseLightStatusPojo.Body body : bodies) { for (HisenseLightStatusPojo.Body body : bodies) {
HisenseLightStatusPojo.ContentBody content = body.getContent(); HisenseLightStatusPojo.ContentBody content = body.getContent();
......
...@@ -616,7 +616,7 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -616,7 +616,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
// 计划ID - 取的是时段表号 // 计划ID - 取的是时段表号
crossSectionPO.setPlanId(dayplanDTO.getNDayPlanNumber()); crossSectionPO.setPlanId(dayplanDTO.getNDayPlanNumber());
//方案号 //方案号
Integer pattern = (dayplanDTO.getNTimebaseAscPattern()+2)/3; Integer pattern = dayplanDTO.getNTimebaseAscPattern();
if (pattern == 85) { if (pattern == 85) {
//黃闪 //黃闪
crossSectionPO.setControlMode(3); crossSectionPO.setControlMode(3);
......
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