Commit ea99c7de authored by duanruiming's avatar duanruiming

[update] 标准协议通讯层远程调用优化

parent c7864d9c
package net.wanji.utc.cache;
import net.wanji.databus.dao.mapper.CrossInfoMapper;
import net.wanji.databus.dao.mapper.ManufacturerInfoMapper;
import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.ManufacturerInfoPO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @author duanruiming
* @date 2023/05/23 9:44
*/
@Component
public class CrossInfoCache implements CommandLineRunner {
@Resource
private CrossInfoMapper crossInfoMapper;
@Resource
private ManufacturerInfoMapper manufacturerInfoMapper;
private static final List<CrossInfoPO> crossInfoList = new ArrayList<>();
/**
* 通过路口编号获取厂商编码
*
* @param crossId
* @return
*/
public String getManufacturerCodeByCrossId(String crossId) throws Exception {
CrossInfoPO crossInfoPO = getCrossInfoPO(crossId);
if (Objects.nonNull(crossInfoPO)) {
Integer manufacturerId = crossInfoPO.getManufacturerId();
ManufacturerInfoPO manufacturerInfoPO = manufacturerInfoMapper.selectById(manufacturerId);
return manufacturerInfoPO.getCode();
}
return null;
}
/**
* 通过路口编号获取路口信息
*
* @param crossId
* @return
*/
public CrossInfoPO getCrossInfoPO(String crossId) {
if (!CollectionUtils.isEmpty(crossInfoList)) {
for (CrossInfoPO crossInfoPO : crossInfoList) {
if (StringUtils.equals(crossId, crossInfoPO.getCode())) {
return crossInfoPO;
}
}
}
return null;
}
@Override
public void run(String... args) throws Exception {
init();
}
public void init() {
List<CrossInfoPO> crossInfoPOList = crossInfoMapper.selectAll();
if (!CollectionUtils.isEmpty(crossInfoPOList)) {
crossInfoPOList = crossInfoPOList;
}
}
}
......@@ -20,8 +20,7 @@ public class UtcFeignClientCache implements CommandLineRunner {
public UtcFeignCommon getUtcFeignClientService(String name) {
if (!utcFeignClientsMap.isEmpty()) {
UtcFeignCommon utcFeignCommon = utcFeignClientsMap.get(name);
return utcFeignCommon;
return utcFeignClientsMap.get(name);
}
return null;
}
......
......@@ -42,7 +42,7 @@ public class SignalStatusController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SignalStatusLogPO.class)
})
public JsonViewObject runningStatusAlarm() {
public JsonViewObject runningStatusAlarm() throws Exception {
List<SignalStatusLogPO> signalStatusLogPOList = signalStatusService.runningStatusAlarm();
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
......@@ -57,7 +57,7 @@ public class SignalStatusController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = LightsStatusVO.class)
})
public JsonViewObject lightStatus() {
public JsonViewObject lightStatus() throws Exception {
List<LightsStatusVO> lightsStatusVOList = signalStatusService.lightStatus();
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
......
......@@ -5,8 +5,8 @@ import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.ManufacturerInfoPO;
import net.wanji.databus.vo.*;
import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.common.typeenum.BasicEnum;
import net.wanji.utc.common.typeenum.DateStyle;
import net.wanji.utc.po.hk.request.DelBaseConfigPO;
......@@ -42,28 +42,14 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
private final CrossSectionMapper crossSectionMapper;
private final CrossPlanMapper crossPlanMapper;
private final CrossSchedulesMapper crossSchedulesMapper;
private final CrossInfoCache crossInfoCache;
/**
* 通过路口编号获取厂商编码
*
* @param crossId
* @return
*/
public String getManufacturerCodeByCrossId(String crossId) throws Exception {
CrossInfoPO crossInfoPO = crossInfoMapper.selectByPrimaryKey(crossId);
if (Objects.isNull(crossInfoPO)) {
throw new Exception("当前路口信息不存在!");
}
Integer manufacturerId = crossInfoPO.getManufacturerId();
ManufacturerInfoPO manufacturerInfoPO = manufacturerInfoMapper.selectById(manufacturerId);
return manufacturerInfoPO.getCode();
}
@Override
@Transactional(rollbackFor = Exception.class)
public JsonViewObject schemeSendStrategy(SchemeSendVO schemeSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(schemeSendVO.getCrossCode());
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(schemeSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.schemeSend(schemeSendVO);
} else {
......@@ -122,7 +108,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Transactional(rollbackFor = Exception.class)
public JsonViewObject planSendStrategy(PlanSendVO planSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(planSendVO.getCrossCode());
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(planSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.planSend(planSendVO);
} else {
......@@ -163,7 +149,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Transactional(rollbackFor = Exception.class)
public JsonViewObject scheduleSendStrategy(ScheduleSendVO scheduleSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(scheduleSendVO.getCrossCode());
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(scheduleSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.scheduleSend(scheduleSendVO);
} else {
......@@ -214,7 +200,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Override
public JsonViewObject lockControlStrategy(ControlCommandVO commandVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(commandVO.getCrossCode());
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(commandVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.lockControl(commandVO);
} else {
......@@ -226,7 +212,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Override
public JsonViewObject stepControlStrategy(String crossId, Integer command, Integer stepNum) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(crossId);
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.stepControl(crossId, command, stepNum);
} else {
......@@ -238,7 +224,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Override
public JsonViewObject setSignalControlStrategy(String crossId, Integer command, Integer commandType) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(crossId);
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.setSignalControl(crossId, command, commandType);
} else {
......@@ -253,7 +239,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
if (StringUtils.isBlank(crossId)) {
return jsonViewObject.fail("路口编号不能为空");
}
String manufacturerIdCode = getManufacturerCodeByCrossId(crossId);
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.recoverSchedule(crossId);
} else {
......@@ -265,7 +251,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Override
public JsonViewObject phaseTimingSendStrategy(PhaseTimingSendVO phaseTimingSendVO) throws Exception {
JsonViewObject jsonViewObject;
String manufacturerIdCode = getManufacturerCodeByCrossId(phaseTimingSendVO.getCrossCode());
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(phaseTimingSendVO.getCrossCode());
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerIdCode)) {
jsonViewObject = hkControlCommandService.phaseTimingSend(phaseTimingSendVO);
} else {
......@@ -280,7 +266,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
}
@Override
public JsonViewObject delBaseConfig(DelBaseConfigVO delBaseConfigVO) throws Exception{
public JsonViewObject delBaseConfig(DelBaseConfigVO delBaseConfigVO) throws Exception {
// 通过路口编号获取信号机编号
String crossId = delBaseConfigVO.getCrossId();
CrossInfoPO crossInfoPO = crossInfoMapper.selectByPrimaryKey(crossId);
......@@ -293,7 +279,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
delBaseConfigPO.setType(delBaseConfigVO.getType());
delBaseConfigPO.setIds(delBaseConfigVO.getIds());
// 通过厂商编码调用删除服务
String manufacturer = getManufacturerCodeByCrossId(crossId);
String manufacturer = crossInfoCache.getManufacturerCodeByCrossId(crossId);
JsonViewObject jsonViewObject;
if (StringUtils.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturer)) {
jsonViewObject = hkControlCommandService.delBaseConfig(delBaseConfigPO);
......
package net.wanji.utc.service.control.impl;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.vo.*;
import net.wanji.feign.service.common.UtcFeignCommon;
import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.cache.UtcFeignClientCache;
import net.wanji.utc.common.constant.Constants;
import net.wanji.utc.po.hk.request.DelBaseConfigPO;
import net.wanji.utc.service.control.ControlCommandService;
import net.wanji.utc.util.HttpRestUtil;
......@@ -13,7 +14,7 @@ import net.wanji.utc.util.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Objects;
/**
* @author duanruiming
......@@ -27,6 +28,7 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Value("url")
private String rpcUri;
private final UtcFeignClientCache utcFeignClientCache;
private final CrossInfoCache crossInfoCache;
/**
* @param schemeSendVO
......@@ -35,7 +37,8 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
*/
@Override
public JsonViewObject schemeSend(SchemeSendVO schemeSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(schemeSendVO));
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(schemeSendVO.getCrossCode());
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).schemeSend(schemeSendVO);
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发方案成功!");
}
......@@ -44,7 +47,8 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Override
public JsonViewObject planSend(PlanSendVO planSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(planSendVO));
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(planSendVO.getCrossCode());
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).planSend(planSendVO);
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发计划成功!");
}
......@@ -53,7 +57,8 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Override
public JsonViewObject scheduleSend(ScheduleSendVO scheduleSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(scheduleSendVO));
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(scheduleSendVO.getCrossCode());
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).scheduleSend(scheduleSendVO);
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发时间表成功!");
}
......@@ -62,7 +67,13 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Override
public JsonViewObject lockControl(ControlCommandVO commandVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(commandVO));
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(commandVO.getCrossCode());
LockControlVO lockControlVO = new LockControlVO();
lockControlVO.setCrossCode(commandVO.getCrossCode());
lockControlVO.setCommand(lockControlVO.getCommand());
lockControlVO.setDuration(commandVO.getDuration());
lockControlVO.setPhaseList(commandVO.getPhaseList());
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).lockControl(lockControlVO);
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议锁定控制成功!");
}
......@@ -71,24 +82,44 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Override
public JsonViewObject stepControl(String crossId, Integer command, Integer stepNum) throws Exception {
HashMap<String, Object> paraMap = new HashMap<>();
paraMap.put("crossId", crossId);
paraMap.put("command", command);
paraMap.put("stepNum", stepNum);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(paraMap));
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).stepControl(crossId, command, stepNum);
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议步进控制成功!");
}
return jsonViewObject;
}
/**
* 全红黄闪关灯
*
* @param crossId 信号机编号
* @param command 指令 1 开 0 关
* @param commandType 命令类型
* @return
* @throws Exception
*/
@Override
public JsonViewObject setSignalControl(String crossId, Integer command, Integer commandType) throws Exception {
HashMap<String, Object> paraMap = new HashMap<>();
paraMap.put("crossId", crossId);
paraMap.put("command", command);
paraMap.put("commandType", commandType);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(paraMap));
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
UtcFeignCommon utcFeignClientService = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
ControlCommandVO controlCommandVO = new ControlCommandVO();
controlCommandVO.setCrossCode(crossId);
controlCommandVO.setCommand(command);
controlCommandVO.setDuration(999);
if (Objects.equals(Constants.CLOSE_LIGHT_CONTROL, command)) {
controlCommandVO.setControlType(Constants.CLOSE_LIGHT_CONTROL);
jsonViewObject = utcFeignClientService.closeLightControl(controlCommandVO);
}
if (Objects.equals(Constants.YELLOW_LIGHT_CONTROL, command)) {
controlCommandVO.setControlType(Constants.YELLOW_LIGHT_CONTROL);
jsonViewObject = utcFeignClientService.closeLightControl(controlCommandVO);
}
if (Objects.equals(Constants.ALL_RED_CONTROL, command)) {
controlCommandVO.setControlType(Constants.ALL_RED_CONTROL);
jsonViewObject = utcFeignClientService.closeLightControl(controlCommandVO);
}
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议设置信号机控制模式成功!");
}
......@@ -97,12 +128,8 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Override
public JsonViewObject recoverSchedule(String crossId) throws Exception {
HashMap<String, Object> paraMap = new HashMap<>();
paraMap.put("crossId", crossId);
// JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(paraMap));
UtcFeignCommon dtService = utcFeignClientCache.getUtcFeignClientService("DT");
JsonViewObject jsonViewObject = dtService.recoverSchedule(crossId);
// .recoverSchedule(crossId);
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).recoverSchedule(crossId);
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议恢复时间表成功!");
}
......@@ -111,7 +138,8 @@ public class WanJiControlCommandServiceImpl implements ControlCommandService {
@Override
public JsonViewObject phaseTimingSend(PhaseTimingSendVO phaseTimingSendVO) throws Exception {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(phaseTimingSendVO));
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(phaseTimingSendVO.getCrossCode());
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).recoverSchedule(phaseTimingSendVO.getCrossCode());
if (StringUtils.endsWithIgnoreCase("success", jsonViewObject.getStatus())) {
return jsonViewObject.success("万集标准协议下发相位配时成功!");
}
......
......@@ -10,16 +10,17 @@ import java.util.List;
* @date 2022/11/21 9:09
*/
public interface SignalStatusService {
List<SignalStatusLogPO> runningStatusAlarm();
List<SignalStatusLogPO> runningStatusAlarm() throws Exception;
/**
* todo 提供给其他平台,需要确认以厂商还是以路口形式推送数据
*
* @param crossId
* @return
*/
List<SignalStatusLogPO> runningStatusAlarm(String crossId);
List<LightsStatusVO> lightStatus();
List<LightsStatusVO> lightStatus() throws Exception;
List<LightsStatusVO> lightStatus(String crossId);
List<LightsStatusVO> lightStatus(String crossId) throws Exception;
}
......@@ -16,7 +16,7 @@ public interface WanJiCommonRunningStatusService extends RpcService {
* @param crossIdList
* @return
*/
List<SignalStatusLogPO> runningStatus(List<String> crossIdList);
List<SignalStatusLogPO> runningStatus(List<String> crossIdList) throws Exception;
/**
......@@ -24,5 +24,5 @@ public interface WanJiCommonRunningStatusService extends RpcService {
* @param crossIdList
* @return
*/
List<LightsStatusVO> lightsStatus(List<String> crossIdList);
List<LightsStatusVO> lightsStatus(List<String> crossIdList) throws Exception;
}
......@@ -44,7 +44,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
@Override
@Transactional
public List<SignalStatusLogPO> runningStatusAlarm() {
public List<SignalStatusLogPO> runningStatusAlarm() throws Exception {
List<SignalStatusLogPO> resList = new ArrayList<>();
BasicEnum.ManufacturerEnum[] manufacturerEnums = BasicEnum.ManufacturerEnum.values();
for (BasicEnum.ManufacturerEnum manufacturerEnum : manufacturerEnums) {
......@@ -87,7 +87,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
}
@Override
public List<LightsStatusVO> lightStatus(String crossId) {
public List<LightsStatusVO> lightStatus(String crossId) throws Exception {
List<LightsStatusVO> lightsStatusVOList = new ArrayList<>();
String manufacturerCode = getManufacturerCode(crossId);
if (Objects.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerCode)) {
......@@ -114,7 +114,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
@Override
@Transactional
public List<LightsStatusVO> lightStatus() {
public List<LightsStatusVO> lightStatus() throws Exception {
List<LightsStatusVO> resList = new ArrayList<>();
BasicEnum.ManufacturerEnum[] manufacturerEnums = BasicEnum.ManufacturerEnum.values();
for (BasicEnum.ManufacturerEnum manufacturerEnum : manufacturerEnums) {
......
package net.wanji.utc.service.runninginfo.impl;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.po.SignalStatusLogPO;
import net.wanji.databus.vo.LightsStatusVO;
import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.cache.UtcFeignClientCache;
import net.wanji.utc.service.runninginfo.WanJiCommonRunningStatusService;
import net.wanji.utc.util.HttpRestUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @author duanruiming
......@@ -26,18 +26,36 @@ public class WanJiCommonRunningStatusServiceImpl implements WanJiCommonRunningSt
private final HttpRestUtil httpRestUtil;
@Value("url")
private String rpcUri;
private final CrossInfoCache crossInfoCache;
private final UtcFeignClientCache utcFeignClientCache;
@Override
public List<SignalStatusLogPO> runningStatus(List<String> crossIdList) {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(crossIdList));
List<SignalStatusLogPO> result = (List<SignalStatusLogPO>) jsonViewObject.getContent();
public List<SignalStatusLogPO> runningStatus(List<String> crossIdList) throws Exception {
Set<String> set = new HashSet<>();
for (String crossId : crossIdList) {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
set.add(manufacturerIdCode);
}
List<SignalStatusLogPO> result = new ArrayList<>();
for (String manufacturerIdCode : set) {
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).runningStatusAlarm();
result = (List<SignalStatusLogPO>) jsonViewObject.getContent();
}
return result;
}
@Override
public List<LightsStatusVO> lightsStatus(List<String> crossIdList) {
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(crossIdList));
List<LightsStatusVO> result = (List<LightsStatusVO>) jsonViewObject.getContent();
public List<LightsStatusVO> lightsStatus(List<String> crossIdList) throws Exception {
Set<String> set = new HashSet<>();
for (String crossId : crossIdList) {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
set.add(manufacturerIdCode);
}
List<LightsStatusVO> result = new ArrayList<>();
for (String manufacturerIdCode : set) {
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).lightStatus();
result = (List<LightsStatusVO>) jsonViewObject.getContent();
}
return result;
}
......
......@@ -21,7 +21,7 @@ public interface WanJiCommonStaticInfoService extends RpcService {
* @param signalId
* @return
*/
Result<SchemePhaseLightsVO> schemePhaseLights(String crossId, String signalId);
Result<SchemePhaseLightsVO> schemePhaseLights(String crossId, String signalId) throws Exception;
/**
* 静态参数,获取计划数据-计划信息、时段信息
......@@ -30,7 +30,7 @@ public interface WanJiCommonStaticInfoService extends RpcService {
* @param signalId
* @return
*/
Result<PlanSectionVO> planSection(String crossId, String signalId, Integer planNo);
Result<PlanSectionVO> planSection(String crossId, String signalId, Integer planNo) throws Exception;
/**
* 静态参数,获取时间表数据
......@@ -38,5 +38,5 @@ public interface WanJiCommonStaticInfoService extends RpcService {
* @param signalId
* @return
*/
Result<List<CrossSchedulesPO>> schedules(String crossId, String signalId);
Result<List<CrossSchedulesPO>> schedules(String crossId, String signalId) throws Exception;
}
package net.wanji.utc.service.staticinfo.impl;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.dto.CrossSchedulesDTO;
import net.wanji.databus.dto.PlanSectionDTO;
import net.wanji.databus.vo.CrossIdVO;
import net.wanji.databus.vo.PlanSectionVO;
import net.wanji.databus.vo.SchemePhaseLightsVO;
import net.wanji.utc.cache.CrossInfoCache;
import net.wanji.utc.cache.UtcFeignClientCache;
import net.wanji.utc.common.Result;
import net.wanji.utc.service.staticinfo.WanJiCommonStaticInfoService;
import net.wanji.utc.util.HttpRestUtil;
......@@ -15,10 +19,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
/**
* @author duanruiming
......@@ -39,12 +40,16 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
private final CrossPlanMapper crossPlanMapper;
private final CrossSectionMapper crossSectionMapper;
private final CrossSchedulesMapper crossSchedulesMapper;
private final CrossInfoCache crossInfoCache;
private final UtcFeignClientCache utcFeignClientCache;
@Override
public Result<SchemePhaseLightsVO> schemePhaseLights(String crossId, String signalId) {
Map<String, String> commonParamMap = getCommonParamMap(crossId, signalId);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(commonParamMap));
public Result<SchemePhaseLightsVO> schemePhaseLights(String crossId, String signalId) throws Exception {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
CrossIdVO crossIdVO = new CrossIdVO();
crossIdVO.setCrossId(crossId);
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).schemePhaseLights(crossIdVO);
SchemePhaseLightsVO content = (SchemePhaseLightsVO) jsonViewObject.getContent();
if (Objects.nonNull(content)) {
List<BaseCrossSchemePO> crossSchemeList = content.getCrossSchemeList();
......@@ -73,12 +78,13 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
}
@Override
public Result<PlanSectionVO> planSection(String crossId, String signalId, Integer planNo) {
Map<String, String> paramMap = new HashMap<>();
paramMap.put("crossId", crossId);
paramMap.put("planNo", String.valueOf(planNo));
paramMap.put("signalId", signalId);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(paramMap));
public Result<PlanSectionVO> planSection(String crossId, String signalId, Integer planNo) throws Exception {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
PlanSectionDTO planSectionDTO = new PlanSectionDTO();
planSectionDTO.setCrossId(crossId);
planSectionDTO.setPlanNo(planNo);
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).planSection(planSectionDTO);
PlanSectionVO content = (PlanSectionVO) jsonViewObject.getContent();
if (Objects.nonNull(content)) {
if (Objects.nonNull(content)) {
......@@ -99,9 +105,12 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
}
@Override
public Result<List<CrossSchedulesPO>> schedules(String crossId, String signalId) {
Map<String, String> commonParamMap = getCommonParamMap(crossId, signalId);
JsonViewObject jsonViewObject = rpcService(httpRestUtil, rpcUri, null, JSONObject.toJSONString(commonParamMap));
public Result<List<CrossSchedulesPO>> schedules(String crossId, String signalId) throws Exception {
String manufacturerIdCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
CrossSchedulesDTO crossSchedulesDTO = new CrossSchedulesDTO();
crossSchedulesDTO.setManufacturerCode(manufacturerIdCode);
crossSchedulesDTO.setCrossIdList(Arrays.asList(crossId));
JsonViewObject jsonViewObject = utcFeignClientCache.getUtcFeignClientService(manufacturerIdCode).crossSchedules(crossSchedulesDTO);
List<CrossSchedulesPO> content = (List<CrossSchedulesPO>) jsonViewObject.getContent();
if (Objects.nonNull(content)) {
if (!CollectionUtils.isEmpty(content)) {
......
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