Commit 44654fad authored by wuxiaokai's avatar wuxiaokai

控制指令接口-优化

parent f1afad27
...@@ -23,13 +23,13 @@ public class HttpRequest { ...@@ -23,13 +23,13 @@ public class HttpRequest {
public HttpRequest(String manufacturerAbbr, String apiCode) { public HttpRequest(String manufacturerAbbr, String apiCode) {
// 获取请求地址 // 获取请求地址
ApiInfoPO apiInfoPO = Constants.getManufacturerUrlMap(manufacturerAbbr + ApiInfoPO apiInfoPo = Constants.getManufacturerUrlMap(manufacturerAbbr +
Constants.SEPARATOR_UNDER_LINE + apiCode); Constants.SEPARATOR_UNDER_LINE + apiCode);
if (apiInfoPO == null) { if (apiInfoPo == null) {
throw new NoSuchApiException("没有此接口信息,请在t_manufacturer_api_info表中添加"); throw new NoSuchApiException("没有此接口信息,请在t_manufacturer_api_info表中添加");
} }
url = apiInfoPO.getAddress(); url = apiInfoPo.getAddress();
httpMethod = HttpMethod.valueOf(apiInfoPO.getMethod()); httpMethod = HttpMethod.valueOf(apiInfoPo.getMethod());
headers = buildHeader(); headers = buildHeader();
} }
......
package net.wanji.utc.service;
import net.wanji.utc.common.baseentity.BaseCrossInfo;
import net.wanji.utc.vo.signal.SignalLightStateVo;
import java.util.List;
/**
* @author meng.wang
* @version 1.0
* Created on 2020/09/10
* @description: [海康信号灯厂商接口service]
*/
public interface HkGetSignalMethodService {
/**
* @description: 获取路口信号机的实时灯态数据
* @param baseSignals 信号机列表
* @return SignalInfoVo 信号机状态
* @author meng.wang
* @date 2020/09/10
*/
List<SignalLightStateVo> queryHkSignalInfo(List<BaseCrossInfo> baseSignals);
}
package net.wanji.utc.service; package net.wanji.utc.service.control;
import net.wanji.utc.common.Result; import net.wanji.utc.common.Result;
import net.wanji.utc.vo.PhaseLockVO; import net.wanji.utc.vo.PhaseLockVO;
import net.wanji.utc.vo.plansend.PlanSendVO; import net.wanji.utc.vo.PlanSendVO;
import net.wanji.utc.vo.schedulesend.ScheduleSendVO;
import net.wanji.utc.vo.timeplan.TimePlanVO; import net.wanji.utc.vo.timeplan.TimePlanVO;
import java.util.List; import java.util.List;
...@@ -25,87 +26,65 @@ public interface ControlCommandService { ...@@ -25,87 +26,65 @@ public interface ControlCommandService {
* *
* @param planSendVO 计划下发VO * @param planSendVO 计划下发VO
* @return {@link Result}<{@link T}> * @return {@link Result}<{@link T}>
* @throws Exception 异常
*/ */
<T> Result<T> planSend(PlanSendVO planSendVO) throws Exception; <T> Result<T> planSend(PlanSendVO planSendVO) throws Exception;
/** /**
* 时间表下发 * 时间表下发
*
* @param scheduleSendVO 时间表下发VO
* @return {@link Result}<{@link T}>
*/ */
<T> Result<T> scheduleSend(String signalId, String sourceType, String signalType, Integer command); <T> Result<T> scheduleSend(ScheduleSendVO scheduleSendVO) throws Exception;
/** /**
* 锁定控制 * 锁定控制
* *
* @param signalId 信号机编号
* @param phaseLock 相位锁定实体类 * @param phaseLock 相位锁定实体类
* @return {@link Result}<{@link T}> * @return {@link Result}<{@link T}>
* @throws Exception 异常
*/ */
<T> Result<T> lockControl(String signalId, PhaseLockVO phaseLock) throws Exception; <T> Result<T> lockControl(PhaseLockVO phaseLock) throws Exception;
/** /**
* 步进控制 * 步进控制
* *
* @param signalId 信号机编号 * @param code 信号机编号
* @param sourceType 厂家简称 QS/SCATS/HS/HK * @param command 1 开始步进 0 取消步进
* @param signalType 信号机类型 QS/SCATS/HS/HK * @param stepNum 0 顺序步进 n 跳过n个相位
* @param command 1 开始步进 0 取消步进
* @param stepNum 0 顺序步进 n 跳过n个相位
* @return {@link Result}<{@link T}>
*/
<T> Result<T> stepControl(String signalId, String sourceType, String signalType, Integer command, Integer stepNum);
/**
* 全红控制
*
* @param signalId 信号机编号
* @param sourceType 厂家简称
* @param signalType 信号机类型
* @param command 1 全红控制 0 取消全红
* @return {@link Result}<{@link T}>
*/
<T> Result<T> allRedControl(String signalId, String sourceType, String signalType, Integer command);
/**
* 黄闪控制
*
* @param signalId 信号机编号
* @param sourceType 厂家简称
* @param signalType 信号机类型
* @param command 1 黄闪控制 0 取消黄闪
* @return {@link Result}<{@link T}> * @return {@link Result}<{@link T}>
* @throws Exception 异常
*/ */
<T> Result<T> yellowLightControl(String signalId, String sourceType, String signalType, Integer command); <T> Result<T> stepControl(String code, Integer command, Integer stepNum) throws Exception;
/** /**
* 关灯控制 * 设置信号机控制模式
* *
* @param signalId 信号机编号 * @param code 信号机编号
* @param sourceType 厂家简称 * @param command 指令 1 开 0 关
* @param signalType 信号机类型 * @param commandType 命令类型
* @param command 1 开灯 0 关灯
* @return {@link Result}<{@link T}> * @return {@link Result}<{@link T}>
* @throws Exception 异常
*/ */
<T> Result<T> closeLightControl(String signalId, String sourceType, String signalType, Integer command); <T> Result<T> setSignalControl(String code, Integer command, Integer commandType) throws Exception;
/** /**
* 恢复时间表 * 恢复时间表
* *
* @param signalId 信号机编号 * @param code 信号机编号
* @param sourceType 厂家简称 QS/SCATS/HS/HK
* @param signalType 信号机类型 QS/SCATS/HS/HK
* @param command 1 恢复
* @return {@link Result}<{@link T}> * @return {@link Result}<{@link T}>
*/ */
<T> Result<T> recoverSchedule(String signalId, String sourceType, String signalType, Integer command); <T> Result<T> recoverSchedule(String code) throws Exception;
/** /**
* 相位配时下发 * 相位配时下发
* *
* @param code 信号机id
* @param timePlans 批量下发的配时数据 * @param timePlans 批量下发的配时数据
* @return {@link Result}<{@link T}> * @return {@link Result}<{@link T}>
* @throws InterruptedException 中断异常
*/ */
<T> Result<T> phaseTimingSend(List<TimePlanVO> timePlans); <T> Result<T> phaseTimingSend(String code, List<TimePlanVO> timePlans) throws InterruptedException;
/** /**
* 相位差下发 * 相位差下发
......
package net.wanji.utc.util;
import com.alibaba.fastjson.JSON;
import net.wanji.utc.vo.PlanSendVO;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author wuxiaokai
* @date 2022/11/24 15:37:26
*/
public class FieldUtil {
/**
* 将对象的属性转成 key - Value
*/
@SuppressWarnings("unchecked")
public static <T> Map<String, Object> fieldMethod(T t) throws IllegalAccessException {
if (t == null) {
return null;
}
Field[] fields = t.getClass().getDeclaredFields();
Map<String, Object> map = new HashMap<>(fields.length);
for (Field field : fields) {
field.setAccessible(true);
if (field.getType().equals(List.class)) {
List<Object> list = (List<Object>) field.get(t);
List<Map<String, Object>> list2 = new ArrayList<>(list.size());
for (Object o : list) {
Map<String, Object> map1 = fieldMethod(o);
list2.add(map1);
}
map.put(field.getName(), list2);
} else {
map.put(field.getName(), field.get(t));
}
}
return map;
}
}
...@@ -3,6 +3,7 @@ package net.wanji.utc.vo; ...@@ -3,6 +3,7 @@ package net.wanji.utc.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import net.wanji.utc.common.baseentity.BaseCrossInfo;
/** /**
* 相位锁定实体类 * 相位锁定实体类
...@@ -12,7 +13,7 @@ import lombok.Data; ...@@ -12,7 +13,7 @@ import lombok.Data;
*/ */
@Data @Data
@ApiModel(value = "PhaseLockVO", description = "相位锁定实体类") @ApiModel(value = "PhaseLockVO", description = "相位锁定实体类")
public class PhaseLockVO { public class PhaseLockVO extends BaseCrossInfo {
/** /**
* 相位编号 * 相位编号
......
package net.wanji.utc.vo;
import lombok.Getter;
import lombok.Setter;
import net.wanji.utc.common.baseentity.BaseCrossInfo;
import java.util.List;
/**
* @author wuxiaokai
* @date 2022/11/24 15:55:08
*/
@Setter
@Getter
public class PlanSendVO extends BaseCrossInfo {
private List<Data> data;
@Setter
@Getter
private static class Data {
private String crossCode;
private List<Plan> planList;
@Setter
@Getter
private static class Plan {
private String planNo;
private List<Section> sectionList;
@Setter
@Getter
private static class Section {
private String timeSecNo;
private String patternNo;
private String beginTime;
}
}
}
}
package net.wanji.utc.vo.schedulesend;
import lombok.Data;
import net.wanji.utc.common.baseentity.BaseCrossInfo;
import net.wanji.utc.vo.plansend.SpecialDay;
import net.wanji.utc.vo.plansend.Week;
import java.util.List;
/**
* 时间表下发VO
*
* @author wuxiaokai
* @date 2022/11/23 14:11:09
*/
@Data
public class ScheduleSendVO extends BaseCrossInfo {
/**
* 星期
*/
private List<Week> weeks;
/**
* 特殊日期
*/
private List<SpecialDay> specialDays;
}
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
select select
id,name,code,manufacturer_id,ip,port,location,version,model,install_time,gmt_create,gmt_modified id,name,code,manufacturer_id,ip,port,location,version,model,install_time,gmt_create,gmt_modified
from t_cross_info from t_cross_info
where id = #{code} where code = #{code}
</select> </select>
<select id="selectByManufacturerId" resultMap="BaseResultMap"> <select id="selectByManufacturerId" resultMap="BaseResultMap">
......
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