Commit c14ad762 authored by duanruiming's avatar duanruiming

静态数据-万集统一标准调用服务

parent 7dcd568f
......@@ -3,7 +3,6 @@ package net.wanji.utc.mapper;
import net.wanji.utc.po.CrossSchedulesPO;
import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -13,7 +12,7 @@ import java.util.List;
public interface CrossSchedulesMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertBatch(@Param("entities") ArrayList<CrossSchedulesPO> crossSchedulesPOList);
void insertBatch(@Param("entities") List<CrossSchedulesPO> crossSchedulesPOList);
List<CrossSchedulesPO> selectByCrossIds(@Param("crossIds") List<String> crossIdList);
}
package net.wanji.utc.service.common;
import net.wanji.utc.common.Result;
import net.wanji.utc.po.CrossSchedulesPO;
import net.wanji.utc.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO;
import java.util.List;
/**
* @author duanruiming
* @date 2023/01/09 9:20
......@@ -10,11 +14,28 @@ import net.wanji.utc.vo.SchemePhaseLightsVO;
public interface WanjiCommonStaticInfoService extends rpcService {
/**
* 静态参数,通过路口编号获取万集标准方案数据-方案信息、相位信息、灯组信息
* 静态参数,获取万集标准方案数据-方案信息、相位信息、灯组信息
*
* @param crossId
* @param signalId
* @return
*/
Result<SchemePhaseLightsVO> schemePhaseLights(String crossId, String signalId);
/**
* 静态参数,获取计划数据-计划信息、时段信息
* @param crossId
* @param planNo
* @param signalId
* @return
*/
Result<PlanSectionVO> planSection(String crossId, String signalId, Integer planNo);
/**
* 静态参数,获取时间表数据
* @param crossId
* @param signalId
* @return
*/
Result<List<CrossSchedulesPO>> schedules(String crossId, String signalId);
}
package net.wanji.utc.service.common.impl;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.common.Result;
import net.wanji.utc.mapper.CrossLightsMapper;
import net.wanji.utc.mapper.CrossPhaseLightsMapper;
import net.wanji.utc.mapper.CrossPhaseMapper;
import net.wanji.utc.mapper.CrossSchemeMapper;
import net.wanji.utc.po.CrossLightsPO;
import net.wanji.utc.po.CrossPhaseLightsPO;
import net.wanji.utc.po.CrossPhasePO;
import net.wanji.utc.po.CrossSchemePO;
import net.wanji.utc.entity.JsonViewObject;
import net.wanji.utc.mapper.*;
import net.wanji.utc.po.*;
import net.wanji.utc.service.common.WanjiCommonStaticInfoService;
import net.wanji.utc.util.HttpRestUtil;
import net.wanji.utc.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -28,31 +24,29 @@ import java.util.Objects;
* @author duanruiming
* @date 2023/01/09 9:21
*/
@Service
@Slf4j
@Service
@RequiredArgsConstructor
public class WanjiCommonStaticInfoServiceImpl implements WanjiCommonStaticInfoService {
@Autowired
private HttpRestUtil httpRestUtil;
private final HttpRestUtil httpRestUtil;
@Value("url")
private String rpcUri;
@Autowired
private CrossSchemeMapper crossSchemeMapper;
@Autowired
private CrossPhaseMapper crossPhaseMapper;
@Autowired
private CrossLightsMapper crossLightsMapper;
@Autowired
private CrossPhaseLightsMapper crossPhaseLightsMapper;
private final CrossSchemeMapper crossSchemeMapper;
private final CrossPhaseMapper crossPhaseMapper;
private final CrossLightsMapper crossLightsMapper;
private final CrossPhaseLightsMapper crossPhaseLightsMapper;
private final CrossPlanMapper crossPlanMapper;
private final CrossSectionMapper crossSectionMapper;
private final CrossSchedulesMapper crossSchedulesMapper;
@Override
public Result<SchemePhaseLightsVO> schemePhaseLights(String crossId, String signalId) {
Map<String, String> paramMap = new HashMap<>(2);
paramMap.put("crossId", crossId);
paramMap.put("signalId", signalId);
Result<SchemePhaseLightsVO> result = rpcService(rpcUri, null, JSONObject.toJSONString(paramMap), SchemePhaseLightsVO.class);
if (Objects.nonNull(result.getContent())) {
SchemePhaseLightsVO content = result.getContent();
Map<String, String> commonParamMap = getCommonParamMap(crossId, signalId);
JsonViewObject jsonViewObject = rpcService(rpcUri, null, JSONObject.toJSONString(commonParamMap));
SchemePhaseLightsVO content = (SchemePhaseLightsVO) jsonViewObject.getContent();
if (Objects.nonNull(content)) {
List<CrossSchemePO> crossSchemeList = content.getCrossSchemeList();
crossSchemeList.forEach(crossSchemePO -> {
crossSchemeMapper.deleteOne(crossId, crossSchemePO.getSchemeNo());
......@@ -75,16 +69,66 @@ public class WanjiCommonStaticInfoServiceImpl implements WanjiCommonStaticInfoSe
crossPhaseLightsMapper.insertBatch(crossPhaseLightsPOList);
}
}
return Result.success();
return Result.success(content);
}
@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(rpcUri, null, JSONObject.toJSONString(paramMap));
PlanSectionVO content = (PlanSectionVO) jsonViewObject.getContent();
if (Objects.nonNull(content)) {
if (Objects.nonNull(content)) {
List<CrossPlanPO> crossPlanPOList = content.getCrossPlanPOList();
crossPlanPOList.forEach(crossPlanPO -> {
crossPlanMapper.deleteOne(crossId, Integer.parseInt(crossPlanPO.getPlanNo()));
crossPlanMapper.insertOne(crossPlanPO);
});
List<CrossSectionPO> crossSectionPOList = content.getCrossSectionPOList();
crossSectionPOList.forEach(crossSectionPO -> {
crossSectionMapper.deleteOne(crossId, Integer.parseInt(crossSectionPO.getSectionNo()));
crossSectionMapper.insertOne(crossSectionPO);
});
}
}
return Result.success(content);
}
@Override
public <T> Result<T> rpcService(String url, Map<String, String> headers, String param, Class<T> classType) {
Result<T> result = httpRestUtil.doPost(url, headers, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) {
public Result<List<CrossSchedulesPO>> schedules(String crossId, String signalId) {
Map<String, String> commonParamMap = getCommonParamMap(crossId, signalId);
JsonViewObject jsonViewObject = rpcService(rpcUri, null, JSONObject.toJSONString(commonParamMap));
List<CrossSchedulesPO> content = (List<CrossSchedulesPO>) jsonViewObject.getContent();
if (Objects.nonNull(content)) {
if (!CollectionUtils.isEmpty(content)) {
content.forEach(crossSchedulesPO -> {
crossSchedulesMapper.deleteByCrossId(crossId);
crossSchedulesMapper.insertBatch(content);
});
}
}
return Result.success(content);
}
public static Map<String, String> getCommonParamMap(String crossId, String signalId) {
Map<String, String> paramMap = new HashMap<>();
paramMap.put("crossId", crossId);
paramMap.put("signalId", signalId);
return paramMap;
}
@Override
public JsonViewObject rpcService(String url, Map<String, String> headers, String param) {
JsonViewObject jsonViewObject = httpRestUtil.doPost(url, headers, param, JsonViewObject.class);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
log.error("远程服务调用异常,url:".concat(rpcUri));
return Result.error("获取万集标准信号机方案数据远程调用异常!");
return jsonViewObject.fail("远程服务调用异常,url:".concat(rpcUri));
}
return result;
return jsonViewObject;
}
}
package net.wanji.utc.service.common;
import net.wanji.utc.common.Result;
import net.wanji.utc.entity.JsonViewObject;
import java.util.Map;
......@@ -11,15 +11,13 @@ import java.util.Map;
public interface rpcService {
/**
* 远程post调用
* 远程调用信号机设备
* @param url
* @param headers
* @param param
* @param classType
* @return
* @param <T>
*/
default <T> Result<T> rpcService(String url, Map<String, String> headers, String param, Class<T> classType) {
return Result.success();
default JsonViewObject rpcService(String url, Map<String, String> headers, String param) {
return JsonViewObject.newInstance();
}
}
......@@ -14,6 +14,7 @@ import net.wanji.utc.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
......@@ -103,6 +104,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
// 获取厂商ID和信号机ID
CrossInfoPO crossInfoPO = crossInfoMapper.selectByPrimaryKey(crossId);
String crossCode = crossInfoPO.getCode();
String crossInfoId = crossInfoPO.getId();
Integer manufacturerId = crossInfoPO.getManufacturerId();
// 获取厂商代码
ManufacturerInfoPO manufacturerInfoPO = manufacturerInfoMapper.selectById(manufacturerId);
......@@ -112,7 +114,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
// 海康
hkPlanSectionService.planSection(crossCode, planNo, crossId);
} else {
// todo 其他厂商
wanjiCommonStaticInfoService.planSection(crossInfoId, crossCode, planNo);
}
}
......@@ -125,7 +127,12 @@ public class StaticInfoServiceImpl implements StaticInfoService {
// 海康
hkCrossSchedulesService.crossSchedules(crossIdList);
} else {
// todo 其他厂商
if (!CollectionUtils.isEmpty(crossIdList)) {
String crossId = crossIdList.get(0);
CrossInfoPO crossInfoPO = crossInfoMapper.selectByPrimaryKey(crossId);
String signalIc = crossInfoPO.getCode();
wanjiCommonStaticInfoService.schedules(crossId, signalIc);
}
}
}
......
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