Commit 3a3921e0 authored by duanruiming's avatar duanruiming

[add] 消费解析神思绿波带数据

parent b8988c37
package net.wanji.opt.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Map;
/**
* @author duanruiming
* @date 2024/11/19 10:20
* @description 神思绿波时序图推送数据消息
*/
@Data
@SuppressWarnings("all")
@JsonIgnoreProperties(ignoreUnknown = true)
public class GreenBeltKafkaDTO {
@JsonProperty("greenbelt_id")
private String greenbeltId; // 绿波带id
@JsonProperty("greenbelt_length")
private double greenbeltLength; // 绿波干线长度(m)
@JsonProperty("max_speed_forward")
private double maxSpeedForward; // 正向绿波推荐最大速度(km/h)
@JsonProperty("max_speed_backward")
private double maxSpeedBackward; // 反向绿波推荐最大速度(km/h)
@JsonProperty("min_speed_forward")
private double minSpeedForward; // 正向绿波推荐最小速度(km/h)
@JsonProperty("min_speed_backward")
private double minSpeedBackward; // 反向绿波推荐最小速度(km/h)
@JsonProperty("forward_direction")
private String forwardDirection; // 正向绿波方向(w2e/e2w/n2s/s2n)
@JsonProperty("backward_direction")
private String backwardDirection; // 反向绿波方向(w2e/e2w/n2s/s2n)
@JsonProperty("greenbelt_direction")
private int greenbeltDirection; // 此次策略下发绿波带方向(0=正向,1=反向,2=双向)
@JsonProperty("green_width_forward")
private double greenWidthForward; // 正向绿波带宽(s)
@JsonProperty("green_width_backward")
private double greenWidthBackward; // 反向绿波带宽(s)
@JsonProperty("phase_start_forward")
private Map<String, Double> phaseStartForward; // 每个路口正向绿波相位开始时间(s)
@JsonProperty("phase_start_backward")
private Map<String, Double> phaseStartBackward; // 每个路口反向绿波相位开始时间(s)
@JsonProperty("phase_end_forward")
private Map<String, Double> phaseEndForward; // 每个路口正向绿波相位结束时间(s)
@JsonProperty("phase_end_backward")
private Map<String, Double> phaseEndBackward; // 每个路口反向绿波相位结束时间(s)
@JsonProperty("belt_start_forward")
private Map<String, Double> beltStartForward; // 每个路口正向绿波带宽开始时间(s)
@JsonProperty("belt_start_backward")
private Map<String, Double> beltStartBackward; // 每个路口反向绿波带宽开始时间(s)
@JsonProperty("speed_forward")
private Map<String, Double> speedForward; // 每个路口正向绿波速度(km/h)
@JsonProperty("speed_backward")
private Map<String, Double> speedBackward; // 每个路口反向绿波速度(km/h)
@JsonProperty("offset")
private Map<String, Double> offset; // 每个路口相位差(s)
@JsonProperty("max_cycle")
private int maxCycle; // 最大周期(s)
@JsonProperty("control_time")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "GMT+8")
private String controlTime; // 策略下发时间
@JsonProperty("control_duration")
private int controlDuration; // 策略执行时长(s)
@JsonProperty("greenbelt_type")
private int greenbeltType; // 执行策略(1=单条, 2=垂直,3=平行)
private int dynamic; // 是否动态绿波(1=是,0=否)
@JsonProperty("control_method")
private int controlMethod; // -1=stop by error, 0=no control, 1=control
}
package net.wanji.opt.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author duanruiming
* @date 2024/11/19 10:48
* @description 绿波带时序图
*/
@Data
@ApiModel(value = "GreenBeltInfoVO", description = "绿波时序图返回实体")
@JsonIgnoreProperties(ignoreUnknown = true)
public class GreenBeltInfoVO {
@ApiModelProperty("绿波id")
private String greenId;
@ApiModelProperty("绿波带长度")
private Double length;
@ApiModelProperty("绿波带周期")
private Integer cycle;
@ApiModelProperty("绿波带下发时间")
private String controlTime;
@ApiModelProperty("策略执行时长")
private Integer controlDuration;
@ApiModelProperty("执行策略(1=单条, 2=垂直,3=平行)")
private Integer type;
@ApiModelProperty("是否动态绿波(1=是,0=否)")
private Integer dynamic;
@ApiModelProperty("-1=stop by error, 0=no control, 1=control")
private Integer controlMethod;
private List<DirGreenDetail> dirGreenDetails;
@Data
public static class DirGreenDetail {
@ApiModelProperty("0-反向 1-正向 2-双向")
private Integer dirType;
@ApiModelProperty("绿波方向")
private String dir;
@ApiModelProperty("最大速度")
private Double maxSpeed;
@ApiModelProperty("最小速度")
private Double minSpeed;
@ApiModelProperty("绿波带宽")
private Double greenWithTime;
@ApiModelProperty("绿波路口详情")
private List<CrossGreenDetail> crossGreenDetailList;
}
@Data
public static class CrossGreenDetail {
@ApiModelProperty("路口")
private String crossId;
@ApiModelProperty("相位开始时间")
private Double phaseStartTime;
@ApiModelProperty("相位结束时间")
private Double phaseEndTime;
@ApiModelProperty("绿波带开始时间")
private Double greenStartTime;
@ApiModelProperty("绿波速度")
private Double speed;
@ApiModelProperty("相位差")
private Double offset;
}
}
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