Commit 31fae67f authored by duanruiming's avatar duanruiming

[update] 添加海康信号机校时查询

parent e436d7eb
package net.wanji.utc.po.hk.response;
import lombok.Data;
/**
* @author duanruiming
* @date 2023/08/08 16:58
*/
@Data
public class SignalTimePO {
private String crossCode;
private String time;
}
package net.wanji.utc.service.staticinfo; package net.wanji.utc.service.staticinfo;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.vo.DetailCrossInfoVO; import net.wanji.databus.vo.DetailCrossInfoVO;
import net.wanji.utc.common.genericentity.ManufacturerRes; import net.wanji.utc.common.genericentity.ManufacturerRes;
...@@ -9,4 +10,6 @@ import net.wanji.utc.common.genericentity.ManufacturerRes; ...@@ -9,4 +10,6 @@ import net.wanji.utc.common.genericentity.ManufacturerRes;
*/ */
public interface OthersStaticInfoService { public interface OthersStaticInfoService {
ManufacturerRes<DetailCrossInfoVO> crossBasicInfo(String manufacturerCode); ManufacturerRes<DetailCrossInfoVO> crossBasicInfo(String manufacturerCode);
JsonViewObject signalTime(String crossId) throws Exception;
} }
package net.wanji.utc.service.staticinfo.impl; package net.wanji.utc.service.staticinfo.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import net.wanji.common.enums.DateStyle;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.databus.dao.mapper.CrossInfoMapper;
import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.vo.DetailCrossInfoVO; import net.wanji.databus.vo.DetailCrossInfoVO;
import net.wanji.utc.common.commonentity.HttpRequest; import net.wanji.utc.common.commonentity.HttpRequest;
import net.wanji.utc.common.genericentity.ManufacturerRes; import net.wanji.utc.common.genericentity.ManufacturerRes;
import net.wanji.utc.po.hk.response.HKResponse;
import net.wanji.utc.po.hk.response.SignalTimePO;
import net.wanji.utc.service.staticinfo.OthersStaticInfoService; import net.wanji.utc.service.staticinfo.OthersStaticInfoService;
import net.wanji.utc.util.HttpRestUtil; import net.wanji.utc.util.HttpRestUtil;
import net.wanji.utc.util.PathUtil;
import net.wanji.utc.util.StringUtils; import net.wanji.utc.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import static net.wanji.utc.common.constant.Constants.HK_SUCCESS_STRING_CODE;
/** /**
* @author Kent HAN * @author Kent HAN
* @date 2022/11/16 11:03 * @date 2022/11/16 11:03
...@@ -20,6 +36,11 @@ import org.springframework.stereotype.Service; ...@@ -20,6 +36,11 @@ import org.springframework.stereotype.Service;
public class OthersStaticInfoServiceImpl implements OthersStaticInfoService { public class OthersStaticInfoServiceImpl implements OthersStaticInfoService {
@Autowired @Autowired
private HttpRestUtil httpRestUtil; private HttpRestUtil httpRestUtil;
@Autowired
private ArtemisConfig artemisConfig;
@Autowired
private CrossInfoMapper crossInfoMapper;
@Override @Override
public ManufacturerRes<DetailCrossInfoVO> crossBasicInfo(String manufacturerCode) { public ManufacturerRes<DetailCrossInfoVO> crossBasicInfo(String manufacturerCode) {
...@@ -30,4 +51,23 @@ public class OthersStaticInfoServiceImpl implements OthersStaticInfoService { ...@@ -30,4 +51,23 @@ public class OthersStaticInfoServiceImpl implements OthersStaticInfoService {
} }
return JSON.parseObject(result, new TypeReference<ManufacturerRes<DetailCrossInfoVO>>() {}); return JSON.parseObject(result, new TypeReference<ManufacturerRes<DetailCrossInfoVO>>() {});
} }
@Override
public JsonViewObject signalTime(String crossId) throws Exception {
CrossInfoPO crossInfoPO = crossInfoMapper.selectByPrimaryKey(crossId);
Map<String, String> path = PathUtil.getPathMapByApiCode("getSignalSysTime");
String requestBody = JacksonUtils.getInstance().writeValueAsString(Arrays.asList(crossInfoPO.getCode()));
String responseStr = ArtemisHttpUtil.doPostStringArtemis(artemisConfig, path, requestBody, null,
null, "application/json", null);
HKResponse hkResponse = JSONObject.parseObject(responseStr, HKResponse.class);
if (Objects.nonNull(hkResponse) && Objects.equals(HK_SUCCESS_STRING_CODE, hkResponse.getCode())) {
String dataStr = String.valueOf(hkResponse.getData());
List<SignalTimePO> signalTimePOs = JSONObject.parseObject(dataStr, new TypeReference<List<SignalTimePO>>(){});
for (SignalTimePO signalTimePO : signalTimePOs) {
Date date = new SimpleDateFormat(DateStyle.YYYY_MM_DD_HH_MM_SS.getValue()).parse(signalTimePO.getTime());
return JsonViewObject.newInstance().success(date);
}
}
return JsonViewObject.newInstance().fail("获取信号机校时失败");
}
} }
...@@ -45,6 +45,7 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -45,6 +45,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
private final CrossSchedulesMapper crossSchedulesMapper; private final CrossSchedulesMapper crossSchedulesMapper;
private final WanJiCommonStaticInfoService wanjiCommonStaticInfoService; private final WanJiCommonStaticInfoService wanjiCommonStaticInfoService;
private final CrossInfoCache crossInfoCache; private final CrossInfoCache crossInfoCache;
private final OthersStaticInfoService othersStaticInfoService;
@Override @Override
@Transactional @Transactional
...@@ -166,7 +167,7 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -166,7 +167,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
} }
@Override @Override
public net.wanji.databus.vo.PlanSectionVO buildPlanSectionResponse(String crossId) { public PlanSectionVO buildPlanSectionResponse(String crossId) {
List<CrossPlanPO> crossPlanPOList = crossPlanMapper.selectByCrossId(crossId); List<CrossPlanPO> crossPlanPOList = crossPlanMapper.selectByCrossId(crossId);
List<CrossSectionPO> crossSectionPOList = crossSectionMapper.selectByCrossId(crossId); List<CrossSectionPO> crossSectionPOList = crossSectionMapper.selectByCrossId(crossId);
...@@ -178,12 +179,12 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -178,12 +179,12 @@ public class StaticInfoServiceImpl implements StaticInfoService {
} }
@Override @Override
public net.wanji.databus.vo.PlanSectionVO buildPlanSectionResponse(String crossId, Integer planNo) { public PlanSectionVO buildPlanSectionResponse(String crossId, Integer planNo) {
List<CrossPlanPO> crossPlanPOList = crossPlanMapper.selectByCrossIdAndPlanNo(crossId, planNo); List<CrossPlanPO> crossPlanPOList = crossPlanMapper.selectByCrossIdAndPlanNo(crossId, planNo);
Integer planId = crossPlanMapper.selectIdByNo(crossId, planNo); Integer planId = crossPlanMapper.selectIdByNo(crossId, planNo);
List<CrossSectionPO> crossSectionPOList = crossSectionMapper.selectByCrossIdAndPlanId(crossId, planId); List<CrossSectionPO> crossSectionPOList = crossSectionMapper.selectByCrossIdAndPlanId(crossId, planId);
net.wanji.databus.vo.PlanSectionVO planSectionVO = new net.wanji.databus.vo.PlanSectionVO(); PlanSectionVO planSectionVO = new PlanSectionVO();
planSectionVO.setCrossPlanPOList(crossPlanPOList); planSectionVO.setCrossPlanPOList(crossPlanPOList);
planSectionVO.setCrossSectionPOList(crossSectionPOList); planSectionVO.setCrossSectionPOList(crossSectionPOList);
...@@ -201,6 +202,7 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -201,6 +202,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
String manufacturerCode = crossInfoCache.getManufacturerCodeByCrossId(crossId); String manufacturerCode = crossInfoCache.getManufacturerCodeByCrossId(crossId);
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
if (Objects.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerCode)) { if (Objects.equals(BasicEnum.ManufacturerEnum.HK.getCode(), manufacturerCode)) {
jsonViewObject = othersStaticInfoService.signalTime(crossId);
} else { } else {
jsonViewObject = wanjiCommonStaticInfoService.signalTime(crossId); jsonViewObject = wanjiCommonStaticInfoService.signalTime(crossId);
} }
......
...@@ -2,6 +2,8 @@ spring: ...@@ -2,6 +2,8 @@ spring:
application: application:
# dubbo启动需要程序名称 # dubbo启动需要程序名称
name: utc name: utc
jackson:
time-zone: GMT+8
main: main:
allow-circular-references: true allow-circular-references: true
cloud: cloud:
......
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